Вероятно, потому что ваши настройки локали используют часовой пояс, в котором наблюдается летнее время (или некоторая аналогичная годовая корректировка времени).
Например, в центральном часовом поясе сегодня 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()
, и к ней применяется формат строки, зависящий от реализации, который включает смещение часового пояса, а иногда и имя часового пояса.