новая дата, возвращающая недействительную дату сафари - PullRequest
0 голосов
/ 05 июня 2018

Надеюсь, у вас все хорошо.Я наткнулся на проблему в SAFARI .Если у меня есть такая дата

2016-05-31T10:00:00

и я применяю эту функцию к дате

new Date(2016-05-31T10:00:00)

, она возвращает мне правильный результат

Thu Mar 31 2016 10:00:00 GMT+0500 (PKT)

но если я добавлю смещение часового пояса к своей дате

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

, а затем применим к нему функцию new Date,он начинает выдавать ошибку invalid date.Может кто-нибудь сказать мне, почему это происходит и как решить эту проблему

1 Ответ

0 голосов
/ 05 июня 2018

Проблема в том, что ECMA-262 определяет компонент часового пояса как ± ЧЧ: мм, поэтому в "-0400" отсутствует разделительный двоеточие.

Поскольку строка не соответствует стандарту, анализатор имеет возможность применить свою собственную логику или вернуть недопустимую дату.Safari применяет последнюю логику.

Общий совет: не использовать встроенный синтаксический анализатор и использовать библиотеку или реализовать собственный синтаксический анализатор для вашего конкретного формата (не сложно, всего 4 или 5 строк кода).).

...