我搞不清楚,从9点到10点,一切都是对的,但之后一切都乱了套。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());发布于 2013-03-20 20:19:22
安东尼在我之前解决了真正的问题。
在第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-20 20:18:19
问题出在now.setMinutes(i*15);代码行中。在第5次迭代之后,您将分钟设置为75 (即5 * 15 = 75),这是一个1 hour and 15 minutes,这就是10:00之后的下一个值变为11:15的原因
https://stackoverflow.com/questions/15523142
复制相似问题