2013-12-24 3 views
0

тест в Chrome DevTool (Китай стандартное время):В чем разница между двумя строками даты даты?

new Date("2013-12-24").toISOString() 

"2013-12-24T00: 00: 00.000Z"

new Date("2013/12/24").toISOString() 

и

new Date("Dec 24, 2013").toISOString() 

«2013-12 -23T16: 00: 00.000Z "

В чем разница между этими данными?

+2

Я получаю «2013-12-24T00: 00: 00.000Z» и «2013-12-24T05: 00: 00.000Z». – elclanrs

ответ

2

Первый, 2013-12-24, признается как первая часть строки даты ISO-8601, и поскольку он не имеет связанного с ним времени или часового пояса, он анализируется как UTC.

Второй вариант не определен и зависит от механизма браузера/JS для синтаксического анализа. В вашем случае он, по-видимому, анализирует его как строку даты в США, но использует ваш часовой пояс вместо UTC. Вы можете больше узнать о форматированных форматах даты на MDN Page for Date.parse.

Если вы можете, просто придерживайтесь первого, так как это стандарт. Второй пример может даже не работать в разных локалях, но я не могу сказать точно. Если вам действительно нужен произвольный синтаксический анализ даты, вы можете захотеть использовать библиотеку, поскольку она очень сложна и не покрывается стандартным JS. Может быть, что-то вроде datejs?

Смежные вопросы