如何通过在JavaScript中递增到最接近的小时和分钟,而无需使用MOMM.JS



预期结果

圆形闭合时间:15分钟

给定时间10:00 =>四舍五入到:10:00

给定时间10:13 =>四舍五入:10:15

给定时间10:15 =>四舍五入到:10:15

给定时间10:16 =>四舍五入到:10:30

给定时间16:00 =>四舍五入到:16:00

给定时间16:12 =>四舍五入到:16:15

根据用户输入

,舍入时间变化

mycode

var m = (((minutes + 7.5)/roundOffTime | 0) * roundOffTime) % 60;
var h = ((((minutes/105) + .5) | 0) + hours) % 24;

当前输出

给定时间:08:22 =>四舍五入到:08:15

给定时间:08:23 =>四舍五入到:08:30

需要圆形的时间应为增量顺序

您可以花费所有分钟,然后除以15,以获取整个季度,并乘以15。然后花几个小时和几分钟的格式。返回加入值。

function roundMinutes(t) {
    function format(v) { return v < 10 ? '0' + v: v; }
    var m = t.split(':').reduce(function (h, m) { return h * 60 + +m; });
    
    m = Math.ceil(m / 15) * 15;
    return [Math.floor(m / 60), m % 60].map(format).join(':');
}
var data = ['10:00', '10:13', '10:15', '10:16', '16:00', '16:12', '16:55'];
console.log(data.map(roundMinutes));

尝试以下:

var coeff = 1000 * 60 * 5;
var date = new Date();  //or use any other date
console.log(date);
var rounded = new Date(Math.round(date.getTime() / coeff) * coeff);
console.log(rounded);

最新更新