Date.now () возвращает значение в микросекундах, а не в миллисекундах - PullRequest
0 голосов
/ 07 апреля 2019

Date.now(), согласно документации предполагается вернуть метку времени Unix или Epoch Time, то есть число миллисекунд , которые истекли с 1 января 1970 года.

Текущая временная метка Unix в соответствии с данным веб-сайтом (или любым другим действительным средством вычисления) составляет приблизительно 1554637184. Обратите внимание, что в этом значении есть 10 цифр.Это значение фактически указывается в миллисекундах.

Однако значение, возвращаемое Date.now() во всех трех браузерах - Chrome 73, Firefox 66.0.2 и Edge 17.17134 - равно 1554637694364, что, как считается, составляет13 цифр, и поэтому я предполагаю, что это число микросекунд , которое прошло с 1 января 1970 года.

Что происходит?

Я только что понял это через годыиспользовать его, потому что только сейчас я отлаживал некоторый код, который сделал проверку, например, что не удалось:

let endTime = ...; // a time later than now expressed as a unix timestamp
let now = Date.now();

if (endTime <= now) {
  // And it always came here, and that led me to this discovery
  ...
}

Ответы [ 2 ]

4 голосов
/ 07 апреля 2019

Текущее время эпохи (временная метка unix AKA), 1554637856 - это число секунд с 01-01-1970, а не миллисекунд.

Date.now() возвращает время эпохи в миллисекундах , поэтому вы хотите

if (endTime <= now / 1000) {
...
0 голосов
/ 07 апреля 2019

На момент написания этой статьи время в секундах , начиная с эпохи UNIX, составляет около 1 554 637 931.Таким образом, время в миллисекундах - время JavaScript - около 1 554 637 931 654.

Прошло около 1,55 гига-секунд с начала эпохи.Ваши временные метки JavaScript, фактически, составляют миллисекунды.

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