新日期返回无效日期野生动物园
new Date returning invalid Date safari
希望你们一切都好。我在 SAFARI 中偶然发现了一个问题。如果我有这样的约会
2016-05-31T10:00:00
并将此函数应用于日期
new Date(2016-05-31T10:00:00)
它returns我一个正确的结果
Thu Mar 31 2016 10:00:00 GMT+0500 (PKT)
但是如果我将时区偏移添加到我的日期
2016-05-31T10:00:00-0400
然后在其上应用 new Date
函数,它开始抛出 invalid date
错误。谁能告诉我为什么会这样以及解决这个问题的方法是什么
问题是 ECMA-262 将时区组件定义为 ±HH:mm,因此“-0400”缺少分隔冒号。
由于字符串不符合标准,解析器可以选择应用自己的逻辑,或者返回无效的日期。 Safari 应用后一种逻辑。
一般建议是不要使用内置解析器,而是使用库或为您的特定格式实现您自己的解析器(不难,只有 4 或 5 行代码)。
希望你们一切都好。我在 SAFARI 中偶然发现了一个问题。如果我有这样的约会
2016-05-31T10:00:00
并将此函数应用于日期
new Date(2016-05-31T10:00:00)
它returns我一个正确的结果
Thu Mar 31 2016 10:00:00 GMT+0500 (PKT)
但是如果我将时区偏移添加到我的日期
2016-05-31T10:00:00-0400
然后在其上应用 new Date
函数,它开始抛出 invalid date
错误。谁能告诉我为什么会这样以及解决这个问题的方法是什么
问题是 ECMA-262 将时区组件定义为 ±HH:mm,因此“-0400”缺少分隔冒号。
由于字符串不符合标准,解析器可以选择应用自己的逻辑,或者返回无效的日期。 Safari 应用后一种逻辑。
一般建议是不要使用内置解析器,而是使用库或为您的特定格式实现您自己的解析器(不难,只有 4 或 5 行代码)。