代码之家  ›  专栏  ›  技术社区  ›  siva

如何在JavaScript中通过增量舍入到最近的小时和分钟,而不使用矩。js?

  •  7
  • siva  · 技术社区  · 7 年前

    四舍五入时间 :15分钟

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

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

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

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

    舍入时间因用户输入而异

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

    电流输出

    需要舍入时间应按递增顺序

    2 回复  |  直到 7 年前
        1
  •  7
  •   Nina Scholz    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));
        2
  •  4
  •   Pritam Banerjee Ashish Karnavat    7 年前

    尝试 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);