Какая разница между 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() нет.