我在写一个简单的javascript函数,但并不像我预期的那样。是Javascript array.push方法同步吗?
以下是代码:
var startDate = new Date('2015-07-01 00:00 +0800');
var endDate = new Date('2015-07-10 00:00 +0800');
var arrayOfDates = [];
if (endDate >= startDate) {
while (startDate < endDate) {
arrayOfDates.push(startDate);
startDate = new Date(startDate.setDate(startDate.getDate() + 1));
}
}
虽然我期待的arrayOfDates
的结果是[2015-07-01, 2015-07-02, 2015-07-03.... , 2015-07-10']
。结果是[2015-07-02, 2015-07-03.... , 2015-07-10']
这是为什么?在变量被推送到数组之前,不知何故var startDate
被更新?如果是这种情况,我如何确保代码同步运行?
似乎是工作的罚款https://开头jsfiddle.net/pjso2t2w/ – AmmarCSE
我得到7月1日 - 7月9日包括在内。 http://jsfiddle.net/j08691/7z65chkb/ – j08691
该时间格式不被Firefox理解。 – Pointy