日期(日期字符串)构造函数不一致
Date(dateString) constructor inconsistent?
a = new Date('09-01-2013')
//Sun Sep 01 2013 00:00:00 GMT-0400 (EDT)
b = new Date('2013-09-01')
//Sat Aug 31 2013 20:00:00 GMT-0400 (EDT)
b < a
//true
我在 Node.js repl,v0.10.12 中这样做
了为什么日期根据日期字符串的形式而不同?
我看不出这与时区有何关系,因为这两个日期都以本地时区显示,并且它们的值显然不等效。
问题是new Date('09-01-2013')
和new Date('2013-09-01')
使用不同的格式/标准,因此解析方式不同。
new Date('09-01-2013')
将按预期进行分析,并生成午夜时间(以本地时区)。但是,new Date('2013-09-01')
在UTC午夜解析为ISO-8601日期,UTC午夜在显示时会转换为您的本地时区(在本例中为EDT,反映在20:00:00
中,相差4小时)。
结论:使用YYYY/MM/DD
以避免头痛。
相关文章:
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 从int值来看,Javascript日期不正确
- Javascript设置日期不起作用,显示错误的时间
- Android和JavaScript解析API之间不一致
- Javascript的行为与PHP包含文件不一致
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 点击链接行为不一致
- Ext 4.2.1 模型日期解析在浏览器之间不一致
- 返回不一致结果的日期(取决于是否存在前导零)
- 日期解析不一致,缺少时区
- 新日期(UNIX)返回不一致的时区
- 日期(日期字符串)构造函数不一致
- 创建新日期对象时不一致
- 比较Javascript中的日期-结果不一致
- 角度带日期选择器:返回不一致的时间戳,UTC+0与UTC+12小时
- JavaScript日期getTime()不一致
- 从WCF服务返回的Json日期不一致
- 为什么ie浏览器和Chrome浏览器的计算日期不一致?
- Javascript日期对象的月份编号不一致
- 不一致的Javascript日期