Почему передача аргумента в новую функцию Date () приводит к тому, что часовой пояс отличается от отсутствия аргумента? - PullRequest
0 голосов
/ 19 октября 2018
  • При использовании new Date(0) (или любого другого аргумента) я получаю дату в GMT + 1
  • При использовании new Date() Я получаю дату в GMT + 2

screenshot of console

Почему?

1 Ответ

0 голосов
/ 19 октября 2018

Вероятно, потому что ваши настройки локали используют часовой пояс, в котором наблюдается летнее время (или некоторая аналогичная годовая корректировка времени).

Например, в центральном часовом поясе сегодня 19 октября 2018 года и new Date() возврат (в данный момент):

Пт 19 октября 2018 15:16:16 GMT-0500 (центральное дневное время)

Но new Date(0), вЦентральный часовой пояс возвращает:

Ср 31 декабря 1969 18:00:00 GMT-0600 (Центральное стандартное время)

Обратите внимание, что оба смещенияи часовые пояса различаются , потому что 31 декабря 1969 года было в течение той части года, когда центральный часовой пояс соблюдает центральное стандартное время, а 19 октября 2018 года - в той части года, когда центральный часовой пояс соблюдает центральное летнее время.

ВАЖНОЕ ПРИМЕЧАНИЕ:

Как указано в комментарии к объектам @ Bergi , Date, информация о часовом поясе не содержится.Из документов JavaScript Date :

Объекты Date основаны на значении времени, которое является числом миллисекунд с 1 января 1970 года по Гринвичу.

Когда дата представляется в виде строки, то есть console.log(new Date()), автоматически вызывается метод toString(), и к ней применяется формат строки, зависящий от реализации, который включает смещение часового пояса, а иногда и имя часового пояса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...