我正在尝试向Data对象添加七天,但是在某个阶段我开始得到奇怪的结果。
var currDate = new Date(2011, 2, 28)
, oldTicks = currDate.getTime()
, newTicks = oldTicks + (86400000 * 7)
, nextWeek = new Date(newTicks)
console.log('Old ticks: ' + oldTicks)
console.log('New ticks: ' + newTicks)
console.log('New date : ' + nextWeek)
我得到的输出,Chrome / FF都是:
Old ticks: 1301230800000
New ticks: 1301835600000
log: New date : Sun Apr 03 2011 23:00:00 GMT+1000 (EST)
预计得到:
log: New date : Mon Apr 04 2011 23:00:00 GMT+1000 (EST)
正如您所看到的,不是添加7天,而是添加了6天。但是,上述代码适用于其他日期,例如2011年4月28日或2011年5月28日。
答案 0 :(得分:5)
Crescent Fresh是我能推断的正确形式。
查找时区GMT+1000 (EST)
看起来像澳大利亚东部标准时间 - 来自wikipedia - list of timezones by UTC offset
从wikipedia - daylist savings time around the world开始,表明澳大利亚在标准日期范围之间从标准时间切换到夏令时。
答案 1 :(得分:1)
如果是我,我会这样做:
var curDate = new Date(),
var aWeekLater = new Date(curDate.getFullYear(), curDate.getMonth(), curDate.getDate() + 7);
对一天中的时间进行一些可能的调整。
也就是说,当我在Chrome开发者控制台中尝试使用您的代码时,我会将4月4日作为答案。