Как я могу получить UNIX отметку времени начала и конца дня? - PullRequest
1 голос
/ 15 апреля 2020

Я изо всех сил пытаюсь получить начальную и конечную даты в формате UNIX, используя библиотеку Moment.

Я пробовал следующее:

  console.log(moment().startOf('day').format()); // works correctly - 2020-04-15T00:00:00+02:00

  console.log(moment().startOf('day').format('X')); // not what I need - 1586901600 = 04/14/2020 @ 10:00pm (UTC) (so minus 2h for the timezone)

Так что просто сделать уверен, что я отправляю правильное время, которое я сделал:

  console.log(moment.tz("2020-04-15T00:00" , "Europe/Warsaw").unix()); // again not what I need - 1586901600 = 04/14/2020 @ 10:00pm (UTC) (so minus 2h for the timezone)

  console.log(moment().startOf('day').utcOffset(moment().tz(process.env.TIMEZONE).startOf('day').format('x')).format('X')) // again not what I need - 1586901600 = 04/14/2020 @ 10:00pm (UTC) (even with UTC offset)

Я прочитал, что вы на самом деле не можете сместить или часовой пояс UNIX отметка времени, что это везде одинаково. Хорошо со мной, однако, что было бы «элегантным способом» автоматического вычитания "Europe/Warsaw" из отметки времени UNIX. Скажем, например, что у меня установлен часовой пояс в файле конфигурации, и я хочу, чтобы JS обнаружил смещение на основе часового пояса и правильно вычел его из отметки времени UNIX.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 15 апреля 2020

Я не совсем уверен, правильно ли я вас понимаю, но если вы попытаетесь получить unix отметку времени начала и конца дня в UT C, это способ go:

const start = moment().utc().startOf('day').unix();
const end = moment().utc().endOf('day').unix();

console.log(start, end);
// 1586908800, 1586995199

Примечание: Формат вывода: typeof number.

...