Какая разница между datetime в форматах ISO 8601 и UTC в javascript?
Я выбираю дату и время в javascript, а затем хочу сохранить его на сервере (.NET). Даты должны быть в будущем с текущего момента (так что они не будут до 1970 года).
Прочитав здесь темы, я узнал, что лучше хранить дату в виде строки, и люди предлагают использовать Date.prototype.toISOString()
или Date.prototype.toUTCString()
.
Я читал, что toISOString()
недоступен в IE 7. И я хотел бы узнать другие отличия, когда я должен выбрать ту или иную функцию.
Спасибо!
Ответы
Ответ 1
Оба разные. ISO - это время стандартного формата. UTC является основным стандартом времени, посредством которого мир регулирует часы и время. ISO также поддерживает ms
в своем формате.
Итак, если вы хотите отправить данные на сервер, отправьте ISO, потому что ISO является стандартным форматом:
var date = new Date();
sendDate(date.toISOString());
Вы также можете использовать toISOString
в IE7 polyfill.
Ответ 2
Я надеюсь, что это поможет вам.
Сводка о toISOString()
: -
Метод toISOString()
возвращает строку в формате ISO (ISO 8601 Extended Format), которая может быть описана следующим образом: YYYY-MM-DDTHH:mm:ss.sssZ
. Часовой пояс всегда UTC, обозначаемый суффиксом "Z".
См. ссылку ниже для получения дополнительной информации о toISOString()
.
Date.prototype.toISOString()
Сводка о toUTCString()
: -
Метод toUTCString()
преобразует дату в строку, используя часовой пояс UTC.
См. ссылку ниже для получения дополнительной информации о toUTCString()
Date.prototype.toUTCString()
Ответ 3
Используйте .toISOString()
Вот что я получаю на своей машине.
new Date().toISOString()
"2019-10-11T18:56:08.984Z"
Выбор между .toUTCString
и .toISOString
определяется двумя особенностями.
Удобная сортировка
На моем компьютере для .toUTCString()
я получаю следующее:
new Date().toUTCString()
"Fri, 11 Oct 2019 18:56:14 GMT"
Хотя это не так заметно для некомпьютерных людей, сортировка в виде строки не дает порядка даты и времени.
Напротив, "2019-10-11T18: 56: 08.984Z" из .toISOString()
удобно сортировать как строку.
Точность в миллисекундах
.toISOString()
предоставляет значения в миллисекундах, тогда как .toUTCString()
нет.