Javascript Date构造函数使用任意时间
Javascript Date constructor uses arbitrary time
当我从字符串构造日期对象时,我会得到令人困惑的结果。如果我不指定的话,时间似乎是任意选择的(但可以重复)
var d1=new Date("2013-10-9"), d2=new Date("2013-10-10");
output = d1+' '+d1.toUTCString()+'<br>'n';
output += d2+' '+d2.toUTCString()+'<br>'n';
铬20.0…
Wed Oct 09 2013 00:00:00 GMT-0600 (MDT) Wed, 09 Oct 2013 06:00:00 GMT
Wed Oct 09 2013 18:00:00 GMT-0600 (MDT) Thu, 10 Oct 2013 00:00:00 GMT
为什么Chromium会在10月10日选择不同的时间?
顺便说一句,解决方法如下:https://stackoverflow.com/a/744134/86967
这与您使用的日期字符串的格式有关。如果指定了2013-10-09
(请注意当天会有额外的0
),那么它将按预期工作。如果您使用2位数字表示日期和月份,则您遵循ECMA规范
var d1=new Date("2013-10-09"), d2=new Date("2013-10-10");
console.log(d1+' '+d1.toUTCString());
console.log(d2+' '+d2.toUTCString());
收益率:
Tue Oct 08 2013 20:00:00 GMT-0400 (Eastern Daylight Time) Wed, 09 Oct 2013 00:00:00 GMT Wed Oct 09 2013 20:00:00 GMT-0400 (Eastern Daylight Time) Thu, 10 Oct 2013 00:00:00 GMT
我相信他们使用的代码可以在这里找到:
https://github.com/WebKit/webkit/blob/master/Source/WTF/wtf/DateMath.cpp
当您提供ECMA日期时,它将使用parseES5DateFromNullTerminatedCharacters
方法来解析日期,但当您使用非标准日期格式时,它会使用parseDateFromNullTerminatedCharacters
方法。我对webkit代码不太熟悉,所以我可能错了,但这是基于我对解析逻辑的阅读。
标准日期格式可在ECMA规范的15.9.1.15节中找到。
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 高库存时期时间与时区不匹配
- Javascript Date构造函数使用任意时间
- 获取24小时格式的时间,并使用Javascript AngularJS将其保存在任意变量中
- 尝试在任意时间播放任意歌曲(学习音乐期末考试:)
- 如何获得一周的开始和结束给定的任意日期时间在周中使用JS