首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JavaScript中,如何在不使用moment.js的情况下通过增量将时间和分钟旋转到最近的时间和分钟?

在JavaScript中,如何在不使用moment.js的情况下通过增量将时间和分钟旋转到最近的时间和分钟?
EN

Stack Overflow用户
提问于 2017-09-07 05:58:34
回答 2查看 2.4K关注 0票数 7

预期结果

关闭时间: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

代码语言:javascript
复制
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

所需周转期应按增量顺序

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-07 06:10:21

你可以用所有的分钟,除以15得到整个四分之一,然后乘以15得到结果。然后花上几个小时和几分钟,然后应用格式。返回已连接的值。

代码语言:javascript
复制
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));

票数 7
EN

Stack Overflow用户

发布于 2017-09-07 06:03:13

试试this

代码语言:javascript
复制
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);

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46088829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档