0

无法弄清楚这一点,从 9:00 到 10:00 一切正常,但随后一切都变得混乱。10:00 之后跳到 11:15,然后跳到 12:30

我只是在日期/时间中添加分钟以每隔 15 分钟增加一个数组,是不是我最多只能添加 60 分钟?

function pad(val,max) { 
        var str = val.toString(); 
        return str.length < max ? pad("0" + str, max) : str;
}

function cboHrs(){
    var now = new Date(); 
    now.setHours(9);
    var hrs = [];
    for (var i=1;i<36;i++){
        var hr = {}; 
        now.setMinutes(i*15);
        hr.txt = pad(now.getHours(),2) +':'+pad(now.getMinutes(),2);
        hr.val = hr.txt; 
        hrs.push(hr);
        }
    return hrs;
}
console.log(cboHrs());
4

2 回答 2

3

安东尼在我之前解决了实际问题......

在第 5 次迭代之后,您将分钟设置为 75(即 5 * 15 = 75),即 1 小时 15 分钟,这就是为什么 10:00 之后的下一个值变为 11:15 - Anthony Forloney

此代码应该可以正确设置时间。

function cboHrs(){
    var now = new Date(); 
    var hrs = [];
    for (var i=1;i<36;i++){
        var hr = {};
        // add another hour every 4th iteration
        now.setHours(9 + parseInt(i / 4));
        // add 15 minutes every iteration, starting back at 0 on the 4th
        now.setMinutes((i % 4) * 15);
        hr.txt = pad(now.getHours(),2) +':'+pad(now.getMinutes(),2);
        hr.val = hr.txt; 
        hrs.push(hr);
        }
    return hrs;
}
于 2013-03-20T12:19:22.087 回答
2

问题在于now.setMinutes(i*15);代码行。在第 5 次迭代之后,您将分钟设置为75(即5 * 15 = 75),1 hour and 15 minutes这就是为什么之后的下一个值10:00变为11:15

于 2013-03-20T12:18:19.157 回答