在过去的几天里,我一直在努力寻找一系列日期。我正在使用以下代码进行测试:
var current_date = new Date("2014-08-01");
var end_date = new Date("2014-10-31");
var end_date_time = end_date.getTime();
while (current_date.getTime() <= end_date_time) {
document.write(current_date + '<br>');
current_date.setDate(current_date.getDate()+1);
}
对我而言,它看起来是正确的,但是存在问题。它错过了最后一天。我正在改变这个代码,使用for循环,在循环中定义新的Date以及你能想象到的所有东西。有一点保持不变。最后一天失踪!
出于好奇,我使用以下格式创建日期:
var current_date = new Date("08/01/2014");
var end_date = new Date("10/31/2014");
令我惊讶的是,它按预期工作。现在我想知道这是正常行为还是日期中的错误?
如果有人可以启发我,我会感激不尽。
答案 0 :(得分:0)
这是因为时间有变化,请检查第一天是否在格林尼治标准时间白天时间并且持续时间(格林尼治标准时间标准时间)
所以你的代码最好使用UTC
var current_date = new Date("2014-08-01");
current_date = new Date(current_date.getUTCFullYear(), current_date.getUTCMonth(), current_date.getUTCDate(), current_date.getUTCHours(), current_date.getUTCMinutes(), current_date.getUTCSeconds());
var end_date = new Date("2014-10-31");
end_date = new Date(end_date.getUTCFullYear(), end_date.getUTCMonth(), end_date.getUTCDate(), end_date.getUTCHours(), end_date.getUTCMinutes(), end_date.getUTCSeconds());
var end_date_time = end_date.getTime();
while (current_date <= end_date) {
document.write(current_date + '<br>');
current_date.setDate(current_date.getDate()+1);
}