(只是想知道这个答案是重复的吗?我看到其他答案不是要求毫秒的结果???)
只是试图填写开始日期和结束日期之间的日期:
<div id="my_div">
</div>
<script>
var START_DATE_MILLISECONDS = new Date("03/12/2017").getTime();
var END_DATE_MILLISECONDS = new Date("03/17/2017").getTime();
var HRS_24_Converted_To_Millisecs = 86400000; //24h
for(var i=START_DATE_MILLISECONDS; i<=END_DATE_MILLISECONDS; i+=HRS_24_Converted_To_Millisecs){
var i_converted = new Date(i);
document.getElementById('my_div').innerHTML += "~ i ~ ="+i+" -> "+i_converted+"<BR>";
var END_DATE_MILLISECONDS = new Date(END_DATE_MILLISECONDS);
document.getElementById('my_div').innerHTML += "~ END_DATE_MILLISECONDS ~ ="+END_DATE_MILLISECONDS+" ->"+END_DATE_MILLISECONDS+" <br>";
}
document.getElementById('my_div').innerHTML += "<BR><BR>";
var i_converted = new Date(i);
document.getElementById('my_div').innerHTML +=(" \n\n ______________________________ <BR>EXIT LIOOP IAND i = "+i+" -><BR><span style='color:red;'>"+i_converted+"</span><BR>__________________________________________ <BR>");
</script>
https://jsfiddle.net/kdfiddle/dfLh04qc/
日期应该循环并包含第17个 - 但它被跳过,因为for循环达到的值更大 - 一小时 - 然后是最后一天17日。
只有在计算中包含3月13日(怪异的0_o)时才会发生这种情况。之前或之后的任何事情似乎都能正常运作。
我怀疑UTC是问题 - 但我不确定该怎么做。 ++ 86400000是一个增加日期的好主意吗? 更有效的东西......“傻瓜”证明?