Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 新日期返回无效日期safari_Javascript_Date_Ecmascript 6_Safari_Invalidation - Fatal编程技术网

Javascript 新日期返回无效日期safari

Javascript 新日期返回无效日期safari,javascript,date,ecmascript-6,safari,invalidation,Javascript,Date,Ecmascript 6,Safari,Invalidation,希望你们都做得很好。我在狩猎旅行中偶然发现了一个问题。如果我有这样的约会 2016-05-31T10:00:00 并将此函数应用于日期 新日期2016-05-31T10:00:00 它会给我一个正确的结果 2016年3月31日星期四格林尼治标准时间10:00:00+0500太平洋时间 但是如果我把时区偏移量加到我的日期上 2016-05-31T10:00:00-0400 然后对其应用新的日期函数,它开始抛出无效的日期错误。有人能告诉我为什么会发生这种情况,以及解决这个问题的方法吗?问题是,将时区

希望你们都做得很好。我在狩猎旅行中偶然发现了一个问题。如果我有这样的约会

2016-05-31T10:00:00

并将此函数应用于日期

新日期2016-05-31T10:00:00

它会给我一个正确的结果

2016年3月31日星期四格林尼治标准时间10:00:00+0500太平洋时间

但是如果我把时区偏移量加到我的日期上

2016-05-31T10:00:00-0400

然后对其应用新的日期函数,它开始抛出无效的日期错误。有人能告诉我为什么会发生这种情况,以及解决这个问题的方法吗?问题是,将时区组件定义为±HH:mm,因此-0400缺少分隔冒号

由于字符串不符合标准,解析器可以选择应用自己的逻辑,或者返回无效日期。Safari应用了后一种逻辑

一般建议不要使用内置解析器,或者使用库,或者为特定格式实现自己的解析器。这并不困难,只有4行或5行代码。

问题是将时区组件定义为±HH:mm,因此-0400缺少分隔冒号

由于字符串不符合标准,解析器可以选择应用自己的逻辑,或者返回无效日期。Safari应用了后一种逻辑


一般的建议是不要使用内置解析器,而是使用库或为特定格式实现自己的解析器。这并不困难,只有4或5行代码。

请阅读。@GabrielePetrioli感谢您的链接。您能建议一种解决此问题的方法吗?您可以使用Date.UTC,但您需要相应地分割日期,或者您可以使用moment.js库来进行解析,它支持您已有的格式。请阅读。@GabrielePetrioli感谢您的链接。您能建议一种解决此问题的方法吗?您可以使用Date.UTC,但需要相应地分割日期,或者您可以使用矩.js库来进行解析,它支持您现有的格式。