Лямбда-момент, время и время, установленные часы и минуты - PullRequest
0 голосов
/ 27 сентября 2018

Когда я запускаю следующее в лямбде AWS, размещенном в us-east-1

const currentTime = moment().utc().valueOf();
console.log(new Date( currentTime ));//1538003255995
Prints: Wed Sep 26 2018 19:07:35 GMT-0400 (Eastern Daylight Time) --- Correct in terms of current time.

const currentExecution = moment().set({
  hour: 19,
  minute: 24,
  second: 0
}).utc().valueOf();
console.log(new Date( currentTime ));//1537989840995
Prints:Wed Sep 26 2018 15:24:00 GMT-0400 (Eastern Daylight Time)

Почему он показывает 15:24 вместо 19:24?Но когда я запускаю этот код на моей локальной машине, расположенной в EST, он печатает Wed Sep 26 2018 19:24:00 GMT-0400 (Eastern Daylight Time)

Почему разница в 4 часа при запуске только в лямбде?

1 Ответ

0 голосов
/ 27 сентября 2018

Поскольку new Date принимает местное время, то оно возвращает время в том месте, где вы находитесь, когда было 19:07 по Гринвичу, то есть 15: 07 .С AWS это не так, поскольку они, вероятно, не используют смещение часового пояса, поэтому сервер ведет себя так, как если бы он был в UTC

Возможно, вы захотите использовать Date.UTC ... goto

...