Javascript: Round Time UP最接近5分钟
Javascript: Round Time UP nearest 5 minutes
我需要把时间调到最近的5分钟。
现在时间是11:54 -时钟是11:55
现在时间11:56 -时钟是12:00
它永远不会四舍五入直到下一次。
我现在使用的是这个代码,但它也会四舍五入
var time = 1000 * 60 * 5;
var date = new Date();
var rounded = new Date(Math.round(date.getTime() / time) * time);
给你的时间加上2.5分钟,然后四舍五入
11:54 + 2.5 = 11:56:30 -> 11:55
11:56 + 2.5 = 11:58:30 -> 12:00
你可以把5
除以Math.ceil
再乘以5
minutes = (5 * Math.ceil(minutes / 5));
我有同样的问题,但我需要四舍五入,我把你的代码改成这样:
var time = 1000 * 60 * 5;
var date = new Date();
var rounded = new Date(date.getTime() - (date.getTime() % time));
我想总结一下,应该是这样的:
var time = 1000 * 60 * 5;
var date = new Date();
var rounded = new Date(date.getTime() + time - (date.getTime() % time));
以毫秒为单位传递任何周期以获得下一个周期示例5,10,15,30,60分钟
function calculateNextCycle(interval) {
const timeStampCurrentOrOldDate = Date.now();
const timeStampStartOfDay = new Date().setHours(0, 0, 0, 0);
const timeDiff = timeStampCurrentOrOldDate - timeStampStartOfDay;
const mod = Math.ceil(timeDiff / interval);
return new Date(timeStampStartOfDay + (mod * interval));
}
console.log(calculateNextCycle(5 * 60 * 1000)); // pass in milliseconds
var b = Date.now() + 15E4,
c = b % 3E5;
rounded = new Date(15E4>=c?b-c:b+3E5-c);
使用ES6和部分函数可以很优雅:
const roundDownTo = roundTo => x => Math.floor(x / roundTo) * roundTo;
const roundUpTo = roundTo => x => Math.ceil(x / roundTo) * roundTo;
const roundUpTo5Minutes = roundUpTo(1000 * 60 * 5);
const ms = roundUpTo5Minutes(new Date())
console.log(new Date(ms)); // Wed Jun 05 2019 15:55:00 GMT+0200
相关文章:
- 获取最接近的数组数
- 从同级字符串中指定最接近的元素类
- 当使用'最接近的':jQuery
- 如何使刻度四舍五入到最接近的 # 的倍数
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 通过搜索最接近的类来更改类
- 获取TR之外最接近的隐藏值
- JQuery获取最接近的元素并筛选子元素
- 获取最接近所选选项的最快方式
- j查询树遍历从子级到最接近过滤的父级
- JavaScript:如何在最接近值的关联数组中查找键
- jquery onclick 切换最接近的 UL
- 在 javascript 数组中搜索最接近的下一个值
- 如何确定乘以后将使您最接近目标数字的数字
- 单击按钮,如何获取与类最接近的td值
- javascript代码查找最接近零的tescase
- 在 javascript 中将 Date() 舍入到最接近的 5 分钟
- 向上舍入/向下舍入一个时刻js 时刻到最接近的分钟
- Round moment.js对象时间到最接近30分钟的间隔
- Javascript: Round Time UP最接近5分钟