使用最新的MooTools Core&More 1.5来考虑以下代码段(在jsFiddle中查看):
console.log(new Date().parse('2014-09-20 00:00:00'));
当我运行这段代码时,我通常会得到一些类似的东西:
Sat Sep 20 2014 00:00:00 GMT+0200 (Central Europe Daylight Time)
但是,当我使用Chrome(38.0.2125.104 m)或PyQt 4 WebKit窗口并使用俄语时区(Windows中任何带RTZ
名称的时区)时,日期是将来的1个月:
Mon Oct 20 2014 00:00:00 GMT+0300 (Eastern Europe Daylight Time)
这显然也不能与火狐或IE浏览器,或明显的任何非俄罗斯的时区发生。
有人知道为什么吗?
该问题显然是由Chrome错误417640和420269引起的。
这样2014-01-01 00:00:00
(包含)和(包含)之间的日期2014-01-01 01:00:00
根本就不存在,而是改为2013-12-31 23:00:00
- 2013-12-31 23:59:59
。
您可以使用RTZ来重现此内容:
var d = new Date();
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setYear(2014);
d.setDate(1);
d.setMonth(0);
console.log(d.getMonth()); // Yields 11 rather than 0
这是因为由于时区问题,日期部分的Date.parse('2014-01-01 00:00:00')
收益2013-12-31
。
这个错误也会影响其他日期,因为MooToolsDate
扩展程序的工作方式(使用初始化日期,year-01-01 00:00:00
然后设置提取值,例如,12:34:56 Sep 25, 2014
将像这样得出:
2014-01-01 00:00:00 // Initialization
2013-12-31 23:00:00 // Resolved date with RTZ
2014-12-31 23:00:00 // Year
2014-09-31 23:00:00 // Month
2014-10-01 23:00:00 // Resolved date with overflow
2014-10-25 23:00:00 // Day of month
2014-10-25 12:34:56 // Time
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句