Машинопись — Дата с 31-го числа месяца возвращает ИЗОСтринг с 30-го дня

#typescript #date #iso

Вопрос:

При создании даты с

let date = new Date(2021, 10, 31);

звонок date.toISOString(); возвращается '2021-10-30T23:00:00.000Z' .

Есть ли способ вернуть правильный день в изостринге (т. е. 31-е число)?

Комментарии:

1. Значения параметров оцениваются в соответствии с вашим местным часовым поясом (не UTC).

2. @AlekseyL. Есть ли способ заставить их оцениваться по UTC?

3. Вы можете использовать другой конструктор и предоставить значения в виде строки. new Date('2021-10-31') или даже лучше new Date('2021-10-31T00:00:00.000Z') . Параметры могут быть введены с помощью строковой интерполяции

4. Вопрос в том, для чего вы на самом деле хотите использовать строковое представление ISO? Потому что это правильно — это просто в UTC, но он показывает точно такой же момент времени, как если бы он находился в местном часовом поясе: '2021-10-31T00:00:00.000 01:00'

5. @VLAZ Я работаю над приложением, в котором серверная часть требует строк времени UTC, но во внешнем интерфейсе для пользователя должен отображаться локальный часовой пояс