如何在不使用 moment.js 的情况下通过 JavaScript 中的增量舍入到最近的小时和分钟?
How to round to nearest hour and minutes by incremment in JavaScript without using moment.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
需要四舍五入的时间应该是递增的顺序
尝试 this:
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);
您可以将所有分钟除以 15
得到整个季度,然后乘以 15
得到结果。然后花费数小时和数分钟并应用格式。 Return 合并值。
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));
预期结果
舍入时间: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
需要四舍五入的时间应该是递增的顺序
尝试 this:
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);
您可以将所有分钟除以 15
得到整个季度,然后乘以 15
得到结果。然后花费数小时和数分钟并应用格式。 Return 合并值。
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));