2015-09-03 3 views
0

Если я использую new Date('2015-01-01'), это даст мне момент времени, эквивалентный 2015-01-01T00:00:00Z?JavaScript Дата конструктора и UTC

+0

Вы можете попробовать эту '+ новую дату ('2015-01-01') == + new Date ('2015- 01-01T00: 00: 00Z ') ' – Hacketo

+0

Большое спасибо. – Ben

+0

из документации см. [Первое предложение] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#ECMAScript_5_ISO-8601_format_support) – Hacketo

ответ

2

От documentation:

конструкторы ... DateString значения Строки, представляющее дату. Строка должна быть в формате, распознаваемом методом Date.parse() (временные метки RFC 2822, соответствующие IETF, а также версия ISO8601).

От documentation on Date.parse():

Если временная зона не указана, и строка в формате ISO признанной ES5, UTC предполагается

Однако, в зависимости от такого поведения может быть опасным, поскольку из этого же документа:

примечание, что ECMAScript ed 6 draft указывает, что строки времени даты без часового пояса должны рассматриваться как локальные, а не UTC

+0

также может добавить, что «обратите внимание, что ECMAScript ed 6 draft указывает, что строки времени даты без часового пояса должны обрабатываться как локальные, а не UTC « – Hacketo

+0

Это полезно, но оно не отвечает на мой вопрос о конструкторе даты. – Ben

+0

@BenAston На самом деле, это именно то, на что он отвечает. Первая цитата, упрощенная, говорит: «Если построено из String, используется Date.parse», а во втором говорится: «Если Date.parse используется без часового пояса - предполагается UTC». Поэтому, если вы объедините два кавычки вместе, вы получите «Если построено из String без указания часового пояса - предполагается UTC». – bezmax

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