Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript在不同的浏览器中表现不同_Javascript_Google Chrome_Browser_Safari_Cross Browser - Fatal编程技术网

javascript在不同的浏览器中表现不同

javascript在不同的浏览器中表现不同,javascript,google-chrome,browser,safari,cross-browser,Javascript,Google Chrome,Browser,Safari,Cross Browser,我正在做一个需要处理很多“日期”的项目。我注意到有时候javascript在不同的浏览器中表现不同: 代码: 我知道我不需要使用replace来创建日期,但是这段代码给了我与Chrome和Safari不同的有趣结果 当我跑步时: "Mar 30, 2017".replace(',', '').replace(/ /g, '/') Chrome和Safari都会告诉我:“2017年3月30日”。但当我尝试将结果转换为Date对象时,有趣的结果是: Chrome: Thu Mar 30 2017

我正在做一个需要处理很多“日期”的项目。我注意到有时候javascript在不同的浏览器中表现不同:

代码:

我知道我不需要使用
replace
来创建日期,但是这段代码给了我与Chrome和Safari不同的有趣结果

当我跑步时:

"Mar 30, 2017".replace(',', '').replace(/ /g, '/')
Chrome和Safari都会告诉我:
“2017年3月30日”
。但当我尝试将结果转换为
Date
对象时,有趣的结果是:

Chrome: Thu Mar 30 2017 00:00:00 GMT-0700 (PDT)
Firefox: Date 2017-03-30T07:00:00.000Z
Safari: Invalid Date
我已经检查了这两种浏览器的Javascript版本,它们使用的是相同的版本(1.7)。有人能解释为什么Chrome在这方面的表现与Safari不同吗

更新 我知道
“2017年3月30日”
不是有效的日期格式。但是我的问题是为什么javascript在不同的浏览器中表现不同。对于那些抱怨我约会方式的答案。在回答问题之前,请先阅读问题。我将接受@Felix Kling的答案,同样感谢所有的答案

有人能解释为什么Chrome在这方面的表现与Safari不同吗

说明处理未知日期格式取决于实现:

[…]根据字符串的内容,可以将字符串解释为本地时间、UTC时间或其他时区的时间。函数首先尝试根据日期-时间字符串格式()中调用的规则(包括延长的年份)解析字符串的格式。如果字符串不符合该格式,函数可能会退回到任何特定于实现的启发式或特定于实现的日期格式。[……]


Safari和Chrome使用不同的JavaScript引擎,因此在这种情况下,它们的行为可能(而且确实)有所不同。

是的,如果将非标准日期格式传递给
new date()
,则会得到不同的结果。如果可能,只传递或避免传递字符串。Safari的JS实现可能无法理解它,为什么需要将日期创建为“2017年3月30日”第一种方法应该可以很好地工作,因为根据我所知的任何规范,
“2017年3月30日”
不是有效的日期格式。浏览器可能会以任何他们想要的方式解释它,或者根本不会,正如您在这里看到的。我的问题是“为什么javascript在不同的浏览器中表现不同”,我说“我知道我不需要使用替换来创建日期”。这段代码来自我的朋友,我只是觉得问这个问题很有趣。不管是谁否决了我的问题,我真的不明白为什么?谢谢你的回答。
Chrome: Thu Mar 30 2017 00:00:00 GMT-0700 (PDT)
Firefox: Date 2017-03-30T07:00:00.000Z
Safari: Invalid Date