Javascript Can';t 2012/10/20的预付款日
试试这个:Javascript Can';t 2012/10/20的预付款日,javascript,date,dst,date-arithmetic,Javascript,Date,Dst,Date Arithmetic,试试这个: date = new Date(2012,9,20) Sat Oct 20 2012 00:00:00 GMT-0300 (BRT) new Date(date.getFullYear(), date.getMonth(), date.getDate()+1) Sat Oct 20 2012 23:00:00 GMT-0300 (BRT) (在铬和萤火虫上测试) 但这是可行的: date = new Date(2012,10,20) Sat Nov 20 2012 00:00:00
date = new Date(2012,9,20)
Sat Oct 20 2012 00:00:00 GMT-0300 (BRT)
new Date(date.getFullYear(), date.getMonth(), date.getDate()+1)
Sat Oct 20 2012 23:00:00 GMT-0300 (BRT)
(在铬和萤火虫上测试)
但这是可行的:
date = new Date(2012,10,20)
Sat Nov 20 2012 00:00:00 GMT-0300 (BRT)
new Date(date.getFullYear(), date.getMonth(), date.getDate()+1)
Sat Nov 21 2012 0:00:00 GMT-0300 (BRT)
它工作得很好:
console.log(date = new Date(2012,9,20))
console.log(new Date(date.getFullYear(), date.getMonth(), date.getDate()+1))
// returns:
// Sat Oct 20 2012 00:00:00 GMT+0200 (West-Europa (zomertijd))
// Sun Oct 21 2012 00:00:00 GMT+0200 (West-Europa (zomertijd))
(不要介意结尾的本地化字符串)
很明显,你刚刚到达了夏令时开始的那一天。请尝试使用Date.UTC()
,除非您特别需要时间进行本地化。它可以正常工作:
console.log(date = new Date(2012,9,20))
console.log(new Date(date.getFullYear(), date.getMonth(), date.getDate()+1))
// returns:
// Sat Oct 20 2012 00:00:00 GMT+0200 (West-Europa (zomertijd))
// Sun Oct 21 2012 00:00:00 GMT+0200 (West-Europa (zomertijd))
(不要介意结尾的本地化字符串)
很明显,你刚刚到达了夏令时开始的那一天。请尝试使用
Date.UTC()
,除非您特别需要本地化时间。现在是夏令时:在GMT-0300中,时间倒转1小时。
您的样本在GMT+0400时区运行良好
请参见问题这是夏令时:在GMT-0300的这个时候,时间倒转1小时。 您的样本在GMT+0400时区运行良好
参见问题问题在于巴西的夏令时从10月20日开始()。尝试使用UTC时间:
date= new Date(Date.UTC(2012,9,20)); // zero-based month: 9->october
new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()+1))
这将使你的约会进程独立于夏令时,让你的过渡顺利进行。有关详细信息,请参阅
或者,你可以把你的约会时间设定在中午,比如说中午,如果你真正关心的是白天。
date = new Date(2012,9,20,12)
new Date(date.getFullYear(), date.getMonth(), date.getDate()+1)
问题在于,巴西的夏时制始于10月20日()。尝试使用UTC时间:
date= new Date(Date.UTC(2012,9,20)); // zero-based month: 9->october
new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()+1))
这将使你的约会进程独立于夏令时,让你的过渡顺利进行。有关详细信息,请参阅
或者,你可以把你的约会时间设定在中午,比如说中午,如果你真正关心的是白天。
date = new Date(2012,9,20,12)
new Date(date.getFullYear(), date.getMonth(), date.getDate()+1)
Firefox 17 Ubuntu-也无法复制。这是夏时制的时间问题…Firefox 17 Ubuntu-也无法复制。这是夏时制的时间问题…是的,因为您的日期对象设置为与OP不同的时区,您的答案完全不相关。请注意,您不能在js中显式设置时区,您必须实际更改系统时区,以便为日期对象使用不同的时区。然后,这个问题也可以作为“太本地化”的教科书示例来解决。不,这与任何碰巧在巴西编程的人都非常相关。对其他人来说,这可能没什么大不了的……正确的答案对任何人都有帮助:始终使用UTCYes,因为您的日期对象设置为与OP不同的时区,所以您的答案完全无关。请注意,您不能在js中显式设置时区,您必须实际更改系统时区,以便为日期对象使用不同的时区。然后,这个问题也可以作为“太本地化”的教科书示例来解决。不,这与任何碰巧在巴西编程的人都非常相关。对其他人来说,这可能没什么大不了的……正确的答案对任何人都有帮助:始终使用UTC这还不够,你必须使用
date.getUTCFullYear()
,date.getUTCMonth()()
和date.getUTCDate()
还有,date
是一个数字,需要date=新日期(date.UTC>)(..
:PIt需要新的日期(Date.UTC)(
再次在第2行,我会给出+1这是我没有真正测试它得到的结果…无论如何,我也做了最后一次更正。你得到了我的+1()和date.getUTCDate()
另外,date
是一个数字,需要date=新日期(date.UTC(…
):PIt需要新日期(date.UTC>)(
再次在第2行,我将给出+1,这是我没有真正测试它所得到的…无论如何,我也做了最后一次更正。你得到了我的+1..但想想你可以用我的