为什么四分之一小时不会给我看1,2,3,4?还是所有数字? 我试着每15分钟一次。
是下一个15分钟不计算的下一个发射对吗?
为什么,不正确计算接下来的15分钟?
我期待四分之一小时输出所有15分钟。
X:15 = 1
X:30 = 2
X:45 = 3
X:00 = 4 or 0
目前的结果:
4/9/2016 @ 18:30:0
fiddle.jshell.net/:60 2
fiddle.jshell.net/:59 4/9/2016 @ 18:30:0
fiddle.jshell.net/:60 2
fiddle.jshell.net/:59 4/9/2016 @ 18:30:0
fiddle.jshell.net/:60 2
fiddle.jshell.net/:59 4/9/2016 @ 19:0:0
fiddle.jshell.net/:60 0
小提琴:https://jsfiddle.net/g2x1jmzb/
代码:
var y = 1;
while(y <= 4) {
var interval = (900000 * y);
var nextlaunch = new Date(Math.ceil(new Date().getTime()/interval)*interval);
var datetime = "" + nextlaunch.getDate() + "/"
+ (nextlaunch.getMonth()+1) + "/"
+ nextlaunch.getFullYear() + " @ "
+ nextlaunch.getHours() + ":"
+ nextlaunch.getMinutes() + ":"
+ nextlaunch.getSeconds();
quarterHours = Math.round(nextlaunch.getMinutes()/15);
console.log(datetime);
console.log(quarterHours);
y++;
}
答案 0 :(得分:0)
您可以使用此代码:
function pad(n) {
return ('0'+n).substr(-2);
}
var interval = 15 * 60 * 1000; // = # miliseconds in 15 minutes
var nextlaunch = new Date(Math.ceil(new Date().getTime()/interval)*interval);
for (var y = 1; y <= 4; y++) {
var datetime = pad(nextlaunch.getDate()) + "/"
+ pad((nextlaunch.getMonth()+1)) + "/"
+ nextlaunch.getFullYear() + " @ "
+ pad(nextlaunch.getHours()) + ":"
+ pad(nextlaunch.getMinutes()) + ":"
+ pad(nextlaunch.getSeconds());
quarterHours = Math.round(nextlaunch.getMinutes()/15);
console.log(datetime);
nextlaunch.setMinutes(nextlaunch.getMinutes()+15);
}
&#13;
这个想法是你通过添加15分钟来增加循环中的nextlaunch
变量。它的初始值可以在循环之外设置,使用适当的间隔。
我添加了一个函数,用日期格式中的零进行适当的填充。您可以考虑使用库来处理日期,例如moment.js。