new Date(Date.parse("Jul 8, 2005"));
Run Code Online (Sandbox Code Playgroud)
2005年7月8日星期五00:00:00 GMT-0700(太平洋标准时间)
new Date(Date.parse("2005-07-08"));
Run Code Online (Sandbox Code Playgroud)
2005年7月7日星期五17:00:00 GMT-0700(太平洋标准时间)
为什么第二个解析不正确?
如果这是Javascript的Date.parse方法的真实文档和/或实现错误,我们正在寻求确认.
我所指的文档位于https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse,他们说'如果您没有指定时区,则假定为本地时区. "
但是下面的代码显示,尽管没有指定时区,但是如果传递给Date.parse的字符串以4位数年份表示开头,则不会假定本地时间(而是应用我的时区偏移量),并且破折号分隔.
var euroStyleDate = '2011-10-04';
var amerStyleDate = '10/04/2011';
var euroStyleParsed = Date.parse(euroStyleDate);
var amerStyleParsed = Date.parse(amerStyleDate);
console.log(euroStyleParsed); //1317686400000
console.log(amerStyleParsed); //1317700800000
console.log(new Date(euroStyleParsed));
//Date {Mon Oct 03 2011 20:00:00 GMT-0400 (Eastern Daylight Time)}
console.log(new Date(amerStyleParsed));
//Date {Tue Oct 04 2011 00:00:00 GMT-0400 (Eastern Daylight Time)}
Run Code Online (Sandbox Code Playgroud)
甚至可能还有其他情况,如果我不对,我肯定我不是第一个发现这个的人.因此,如果有人知道相关链接,我肯定希望能够更深入地了解这一点.
我在FF3,Chrome for Windows中遇到这种情况,当然只是为了特别IE8甚至似乎无法在2011-10-04执行转换:我只是在我的应用程序中获取一个空字符串
提前感谢任何进一步的见解或资源.