如何在不使用moment.js的情况下通过JavaScript增量舍入到最接近的小时和分钟?

siv*_*iva 6 javascript time datetime hour

预期结果

回合时间:15分钟

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

给出时间10:13 =>回合:10:15

给出时间10:15 =>回合:10:15

鉴于时间10:16 =>回合:10:3​​0

给定时间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;
Run Code Online (Sandbox Code Playgroud)

电流输出

给定时间:08:22 =>回合:08:15

给定时间:08:23 =>回合:08:30

需要四舍五入的时间应该是递增顺序

Nin*_*olz 7

您可以花费所有分钟数除以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));
Run Code Online (Sandbox Code Playgroud)