Вы можете использовать метод toISOString()
, который преобразует дату вашего клиента в стандартный формат ISO8601 .
Ваша дата будет выглядеть следующим образом:
new Date().toISOString()
"2020-04-15T12:55:28.344Z"
Где окончание «Z» - это обозначение зоны для нулевого смещения UT C. Как правило, вы всегда должны работать с датами UT C на стороне сервера и позволить клиенту работать со своим часовым поясом (если у вас нет других особых требований).
Если я не понял ваш вопрос, передав дата уже в UT C для сервера должна быть достаточной без смены бэкэнда.
Обновлено
На основании комментария я вижу два возможных в этом случае:
1 - используйте момент. js, который дает вам много методов для анализа и проверки дат. Вы можете выполнить синтаксический анализ даты до UT C на клиенте (ниже приведен фрагмент кода. js docs).
Если вы хотите работать с датой в контексте местного времени пользователя:
moment('2016-01-01T23:35:01');
// "2016-01-01T23:35:01-06:00" - UTC offset as the client
Если вы будете sh взаимодействовать с датой в формате UT C , используйте moment.utc
:
moment.utc('2016-01-01T23:35:01');
// "2016-01-01T23:35:01+00:00" - Date with a utc offset of +0:00:
Если вам нужно работать где-то еще с датами, то момент. js может быть полезен, даже если это добавляет дополнительную сверхурочную работу вашему приложению.
2 - Вы можете добавить свойство "только для чтения" в вашей модели, которое возвращает ISOString из вашего свойства данных.
// In xxx.model.ts
get isoStringDate() {
modelDateProperty.toISOString();
}
Таким образом, вам не нужно менять все части, где используется модель, но в конечном итоге только контракт с сервером с дополнительным строковым свойством.