#javascript #datetime #momentjs #utc
Вопрос:
Мне нужно иметь 00:00 текущего дня в utc и отметку времени, поэтому я делаю что-то подобное:
moment().utc().startOf('day').valueOf()
Я вижу, что кто-то предлагает использовать :
moment.utc().startOf('day').valueOf()
но я не нашел различий…
В любом случае, моя проблема в другом: я работаю в смещении 1, поэтому моя проблема в том, что когда я пытаюсь взять полночь (начало («день»)), а местное часовое время находится между 00:00 и 01:00, у меня полночь предыдущего дня.
вот какой-то журнал консоли, чтобы быть клэр:
console.log("test1", moment().format()) gt;"test1", "2021-11-24T00:21:52 01:00" console.log("test2", moment.utc().format()) gt;"test2", "2021-11-23T23:21:52 00:00" console.log("test3", moment().utc().format()) gt;"test3", "2021-11-23T23:21:52 00:00"
как вы можете видеть, если местное время 00:21, utc-23:21, и если я попытаюсь сохранить начало («день») В результате у меня будет полночь предыдущего дня.
console.log("test4", moment().startOf('day').format()) gt;test4", "2021-11-24T00:00:00 01:00" console.log("test5", moment().utc().startOf('day').format()) gt;"test5", "2021-11-23T00:00:00 00:00"
Мне нужно использовать UTC и начало
Как я могу решить проблему, чтобы иметь также текущий день, если я попытаюсь поймать его между 00:00 и 01:00? есть идеи?
и одна и та же проблема может возникнуть между 00:00 и другим часовым поясом, а не только 1
если бы, например, я находился в зоне 2, моя проблема была бы перенесена между 00:00 и 02:00
Спасибо
Комментарии:
1. Таким образом, вы после начала даты UTC, основанной на локальном времени, даже если дата UTC-предыдущий день?.
2. ^ Если это так -gt;
moment(moment().startOf('day').format().slice(0,19) ' 00:00').format()
3. это означает, что на самом деле вы не хотите UTC.
4. QnD:
new Date(new Date().toLocaleDateString('en-CA')).toISOString()
.5. @Keith точный Мне нужно начало текущего дня, даже если UTC даст мне предыдущий день