使用 JavaScript 将日期四舍五入到最近的小时
JavaScript 将日期四舍五入到最接近的小时:
-
使用
setMinutes()
方法将日期的分钟数设置为其当前分钟数 + 30。 -
使用
setMinutes()
方法将分、秒和毫秒设置为 0。 - 如果在日期上加上 30 分钟会转到下一个小时,则将小时向上取整,否则向下取整。
function roundToNearestHour(date) {
date.setMinutes(date.getMinutes() + 30);
date.setMinutes(0, 0, 0);
return date;
}
// 👇️ Sun Jan 16 2022 14:00:00 (minutes are 30)
console.log(roundToNearestHour(new Date(2022, 0, 16, 13, 30, 00)));
// 👇️ Sun Jan 16 2022 13:00:00 (minutes are 29)
console.log(roundToNearestHour(new Date(2022, 0, 16, 13, 29, 00)));
在将示例记录到控制台时,我们使用了 Date()
构造函数。我们传递的参数是:year
、month
(January = 0、February = 1 等)、day of month
、hours
、minutes
、seconds
。
我们创建了一个可重用的函数,将日期和时间四舍五入到最接近的小时。
setMinutes
方法设置日期对象的分钟数。
该方法采用以下 3 个参数:
-
minutesValue
- 0 到 59 之间的整数,表示分钟。 -
secondsValue
(可选)- 0 到 59 之间的整数,表示秒。 -
msValue
(可选)- 一个介于 0 和 999 之间的数字,表示毫秒。
在我们第一次调用 setMinutes()
方法时,我们使用 getMinutes()
方法获取日期对象的分钟数,并将结果加 30。
如果在当前时间上加 30 分钟会使小时值增加 1,那么我们应该四舍五入到下一个最接近的小时。
另一方面,如果将时间增加 30 分钟不会增加小时,则时间为 29 分钟或更短,我们应该将分钟数向下舍入为 0。
JavaScript 中的 Date 对象会自动处理将日期和时间增加 30 分钟会滚动到下一个小时甚至可能是第二天的情况。
function roundToNearestHour(date) {
date.setMinutes(date.getMinutes() + 30);
date.setMinutes(0, 0, 0);
return date;
}
// 👇️ Sun Jan 17 2022 00:00:00 (minutes are 30)
console.log(roundToNearestHour(new Date(2022, 0, 16, 23, 30, 00)));
在上面的示例中,我们将小时四舍五入,并且
Date()
对象会自动滚动到第二天,因为将小时四舍五入会更改日期。
在我们第二次调用 setMinutes()
方法时,我们将分、秒和毫秒设置为 0,以确保日期和时间对象指向整点,例如 08:00:00,而不是 08:00:30。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法