Получить текущую дату, используя date-fns в формате ISO-8601 - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу получить ISO-8601 формат последнего часа: минуты: секунды текущего дня, используя date-fns lib:

Я использую: endOfDay(new Date());

Fri Sep 14 2018 23:59:59 GMT-0300

Поэтому добавьте в ISOString (), чтобы получить его в формате ISO: endOfDay(new Date()).toISOString()

Результат: 2018-09-15T02:59:59.999Z

Когда мне нужно:

2018-09-14T23:59:59.999Z

1 Ответ

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

2018-09-14T23:59:59.999Z - это не конец дня, рассчитанный по endOfDay(new Date());.Это на 3 часа раньше.«Z» означает UTC, а ваш местный часовой пояс имеет смещение к UTC -0300.

. Выполнив endOfDay, вы получите значение даты, которое вы можете использовать в сравнениях и других вычислениях с другими значениями даты,Это полная дата со временем в местном часовом поясе.

Хотите ли вы сохранить тот же номер дня в отформатированной строке?Вы можете отформатировать дату в строку ISO 8601 в вашем местном часовом поясе:

format(endOfDay(new Date()), 'YYYY-MM-DD[T]HH:mm:ssZZ')
// Prints "2018-09-14T23:59:59.999-0300" in Brazil (BRT)

Хотите ли вы получить конец дня с тем же номером, что и сегодня в UTC?Если вы игнорируете фактический конец вашего дня по отношению к другим датам, вы можете просто объединить «последнюю секунду дня» с «Z»:

format(new Date(), 'YYYY-MM-DD') + 'T23:59:59.999Z'
// Prints "2018-09-14T23:59:59.999Z" anywhere on Earth
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...