Форматирование дат ISO 8601 со смещением часового пояса в JavaScript
В JavaScript построение дат в формате ISO 8601 со смещением часового пояса может быть сложной задачей из-за потенциальные отрицательные смещения часовых поясов. В этой статье рассматривается эта проблема и предлагается решение.
Понимание формата
Формат ISO 8601 определяет даты следующим образом: ГГГГ-ММ-ДДTчч:мм:сс± хх:мм. Например, 2002-10-10T12:00:00-05:00 представляет полдень 10 октября 2002 г. по центральному летнему времени (на пять часов отстает от UTC).
Поиск местного времени и UTC. Offset
Чтобы построить строку ISO 8601, мы должны сначала получить локальный время с помощью new Date() и вычислите смещение UTC с помощью getTimezoneOffset(). Смещение получается в минутах, поэтому мы делим его на 60, чтобы получить количество часов.
Обработка отрицательных смещений часового пояса
Функция getTimezoneOffset() может возвращать отрицательное значение ценности. В таких случаях мы должны форматировать смещение по-другому. Например, смещение -120 минут должно отображаться как 02:00 (на два часа раньше UTC).
Вспомогательная функция для форматирования
Для упрощения процесса вспомогательную функцию toIsoString можно использовать для форматирования дат в формате ISO 8601 со смещением часового пояса:
function toIsoString(date) { var tzo = -date.getTimezoneOffset(), // Make the offset positive dif = tzo >= 0 ? ' ' : '-', // Determine the sign pad = function(num) { // Ensure two-digit representation return (numЭта функция принимает дату в качестве аргумента и форматирует ее в соответствии со спецификацией ISO 8601, включая смещение часового пояса.
Пример использования
Следующий код демонстрирует, как использовать функцию toIsoString:
var dt = new Date(); console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offsetИспользуя этот подход, вы можете легко форматировать даты в JavaScript в соответствии со стандартом ISO 8601, гарантируя, что они соответствуют правильному формату.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3