Форматы даты и времени,используемые в HTML
Некоторые элементы HTML используют значения даты и/или времени.Форматы строк,задающих эти значения,описаны в этой статье.
Элементы, использующие такие форматы, включают определенные формы элемента , которые позволяют пользователю выбирать или указывать дату, время или и то, и другое, а также элементы и , атрибут datetime которых указывает дату или дату. и время, когда произошло вставка или удаление контента.
Для значения type , возвращающие value содержащее строку, представляющую дату и / или время, следующие:
Examples
Прежде чем перейти к тонкостям написания и разбора строк даты и времени в HTML,приведем несколько примеров,которые дадут вам представление о том,как выглядят наиболее часто используемые форматы строк даты и времени.
String | Дата и/или время | |
---|---|---|
2005-06-07 | 7 июня 2005 года | [details] |
08:45 | 8:45 AM | [details] |
08:45:25 | 8:45 утра и 25 секунд | [details] |
0033-08-04T03:40 | 3:40 AM on August 4, 33 | [details] |
1977-04-01T14:00:30 | 30 секунд после 14:00 1 апреля 1977 года | [details] |
1901-01-01T00:00Z | Полночь по Гринвичу 1 января 1901 года | [details] |
1901-01-01T00:00:01-04:00 | 1 секунда после полуночи по восточному стандартному времени (EST)1 января 1901 года | [details] |
Basics
Прежде чем рассматривать различные форматы строк, связанных с датой и временем, используемые элементами HTML, полезно понять несколько фундаментальных фактов о том, как они определены. HTML использует вариант стандарта ISO 8601 для строк даты и времени. Стоит просмотреть описания форматов, которые вы используете, чтобы убедиться, что ваши строки действительно совместимы с HTML, поскольку спецификация HTML включает алгоритмы для анализа этих строк, которые на самом деле более точны, чем ISO 8601, поэтому могут быть тонкие различия в том, как должны выглядеть строки даты и времени.
Character set
Дата и время в HTML — это всегда строки, в которых используется набор символов ASCII .
Year numbers
Чтобы упростить основной формат, используемый для строк даты в HTML, спецификация требует, чтобы все годы указывались с использованием современного (или пролептического ) григорианского календаря . В то время как пользовательские интерфейсы могут разрешать ввод дат с использованием других календарей, базовое значение всегда использует григорианский календарь.
Хотя григорианский календарь был создан только в 1582 году (заменив аналогичный юлианский календарь),для целей HTML григорианский календарь распространяется на 1 год до н.э.Убедитесь,что все более старые даты учитывают это.
Для дат в формате HTML годы всегда состоят как минимум из четырех цифр; годы до 1000 дополняются ведущими нулями (« 0 »), поэтому 72 год записывается как 0072 . Годы до 1 года н.э. не поддерживаются, поэтому HTML не поддерживает годы 1 до н.э. (1 год до н.э.) или ранее.
Год обычно длится 365 дней, за исключением високосных лет .
Leap years
Високосный год является любой год , который делится на 400 или год делится на 4 , но не на 100. Хотя календарный год длиной обычно 365 дней, он фактически берет планету Земля приблизительно 365,2422 дней , чтобы завершить одну орбиту вокруг Солнца . Високосные годы помогают настроить календарь так, чтобы он синхронизировался с фактическим положением планеты на ее орбите. Добавление одного дня к году каждые четыре года, по сути, делает средний год продолжительностью 365,25 дня, что близко к правильному.
Корректировки алгоритма (принятие високосного года,когда год может делиться на 400,и пропуск високосных лет,когда год делится на 100)помогают еще больше приблизить среднее значение к правильному количеству дней (365,2425 дня).Ученые иногда добавляют в календарь високосные секунды (серьезно),чтобы учесть оставшиеся три десятитысячные доли суток и компенсировать постепенное,естественное замедление вращения Земли.
В то время как месяц 02 , февраль, обычно состоит из 28 дней, в високосных годах 29 дней.
Месяцы года
В году 12 месяцев, пронумерованных от 1 до 12. Они всегда представлены двухзначной строкой ASCII, значение которой находится в диапазоне от 01 до 12 . См. Таблицу в разделе Дни месяца, чтобы узнать номера месяцев и их соответствующие названия (и длину в днях).
Дни месяца
Месяцы с номерами 1,3,5,7,8,10 и 12 имеют продолжительность 31 день.Месяцы 4,6,9 и 11 имеют продолжительность 30 дней.Месяц 2,февраль,в большинстве лет имеет продолжительность 28 дней,но в високосные годы-29 дней.Это подробно описано в следующей таблице.
Month number | Name (English) | Продолжительность в днях |
---|---|---|
01 | January | 31 |
02 | February | 28 (29 в високосные годы) |
03 | March | 31 |
04 | April | 30 |
05 | May | 31 |
06 | June | 30 |
07 | July | 31 |
08 | August | 31 |
09 | September | 30 |
10 | October | 31 |
11 | November | 30 |
12 | December | 31 |
Week strings
Строка недели определяет неделю в конкретном году. Действует неделю строка состоит из действительного числа года , за которым следует дефис ( « — », или U + 002D), то заглавная буква „ W “ (U + 0057), а затем двузначной неделю года значение.
Неделя года — это строка из двух цифр от 01 до 53 . Каждая неделя начинается в понедельник и заканчивается в воскресенье. Это означает, что первые несколько дней января можно считать частью предыдущего недельного года, а последние несколько дней декабря — частью следующего недельного года. Первая неделя года – это неделя, содержащая первый четверг года . Например, первый четверг 1953 года приходится на 1 января, поэтому эта неделя, начинающаяся в понедельник, 29 декабря, считается первой неделей года. Следовательно, 30 декабря 1952 года приходится на неделю 1953-W01 .
- Первый день календарного года (1 января) — четверг или
- Первый день года (1 января) — среда, а год — високосный.
Все остальные годы имеют 52 недели.
Week string | Неделя и год (Диапазон дат) |
---|---|
2001-W37 | Неделя 37,2001 (10-16 сентября,2001) |
1953-W01 | Неделя 1,1953 (29 декабря 1952-4 января 1953) |
1948-W53 | Неделя 53,1948 (27 декабря 1948-2 января 1949) |
1949-W01 | Неделя 1,1949 (3-9 января 1949) |
0531-W16 | Неделя 16,531 (13-19 апреля,531) |
0042-W04 | Неделя 4,42 (21-27 января 42 года) |
Обратите внимание,что номера года и недели заполняются ведущими нулями,причем год заполняется до четырех цифр,а неделя-до двух.
Month strings
Строка месяца представляет конкретный месяц во времени,а не общий месяц года.То есть,вместо того,чтобы представлять «январь»,строка месяца HTML представляет месяц и год в паре,например,»январь 1972 года».
Действительный месяц строка состоит из действительного числа года (строка , по крайней мере , четыре цифры), за которым следует дефис ( « — », или U + 002D), а затем два-значный номер месяца , где 01 представляет январь а 12 представляет декабрь.
Month string | Месяц и год |
---|---|
17310-09 | September, 17310 |
2019-01 | January, 2019 |
1993-11 | November, 1993 |
0571-04 | April, 571 |
0001-07 | Июль,1 г.до н.э. |
Обратите внимание,что все годы имеют длину не менее четырех знаков;годы,длина которых меньше четырех цифр,заполняются ведущими нулями.
Date strings
Допустимая строка даты состоит из строки месяца , за которой следует символ дефиса (« — » или U + 002D), за которым следует день месяца, состоящий из двух цифр .
Date string | Full date |
---|---|
1993-11-01 | 1 ноября 1993 года |
1066-10-14 | 14 октября 1066 года |
0571-04-22 | 22 апреля 571 года |
0062-02-05 | 5 февраля,62 |
Time strings
Строка времени может указывать время с точностью до минуты, секунды или миллисекунды. Указание только часа или минуты не допускается. Допустимая строка времени минимально состоит из двух цифр часа с последующим двоеточием ( « : », U + 003A), а затем двузначное минуту. За минутами при желании может следовать еще одно двоеточие и двузначное число секунд. Миллисекунды могут быть указаны, необязательно, путем добавления символа десятичной точки (» . «, U + 002E), за которым следует одна, две или три цифры.
Существуют некоторые дополнительные основные правила:
- Час всегда указывается в 24-часовом формате, где 00 означает полночь, а 23:00 — 23 . Никакие значения за пределами диапазона 00 –23 не 23 .
- Минута должна быть двузначным числом от 00 до 59 . Никакие значения вне этого диапазона не допускаются.
- Если число секунд опущено (для указания времени с точностью до минуты),после числа минут не должно следовать двоеточие.
- Если указано, целая часть количества секунд должна быть от 00 до 59 . Вы не можете указать дополнительные секунды, используя такие значения, как 60 или 61 .
- Если указано количество секунд и оно является целым числом,за ним не должна следовать десятичная точка.
- Если включена доля секунды,она может иметь длину от одной до трех цифр,указывая количество миллисекунд.Она следует за десятичной точкой,расположенной после компонента seconds строки времени.
Time string | Time |
---|---|
00:00:30.75 | 12:00:30.75 AM (30.75 секунд после полуночи) |
12:15 | 12:15 PM |
13:44:25 | 1:44:25 PM (25 секунд после 1:44 PM) |
Местные строки даты и времени
Допустимая datetime-local строка для date и time состоит из строки даты и строки времени, соединенных вместе либо буквой « T », либо символом пробела, разделяющим их. В строке нет информации о часовом поясе; Предполагается, что дата и время находятся в местном часовом поясе пользователя.
При установке value в виде datetime-local ввода, строка нормализована в стандартную форму. Нормализации datetime строки всегда использовать букву « T » , чтобы разделить дату и время, а время часть строки является как можно более коротким. Это делается путем исключения компонента секунд, если его значение равно :00 .
Обратите внимание, что после нормализации это та же строка, что и предыдущая datetime-local строка для даты и времени . Пробел был заменен символом « T », а конечный ноль в долях секунды был удален, чтобы сделать строку как можно короче.
Обратите внимание, что в нормализованной форме этой даты опускается « :00 », указывающее количество секунд, равное нулю, потому что секунды не являются обязательными при нуле, а нормализованная строка минимизирует длину строки.
Глобальные строки даты и времени
Строка глобальной даты и времени указывает дату и время, а также часовой пояс, в котором это происходит. Действует глобальная дата и время строка такой же формат , как локальной даты и времени строки , за исключением того, что есть строка часового пояса добавляется к концу, следующий момент.
Строка смещения часового пояса
Строка смещения часового пояса задает смещение в положительное или отрицательное число часов и минут от стандартной временной базы.Существуют две стандартные временные базы,которые очень близки к одному и тому же,но не совсем одинаковы:
- Для дат после установления всемирного координированного времени (UTC) в начале 1960-х годов базой времени является Z , а смещение указывает на смещение конкретного часового пояса относительно времени нулевого меридиана на 0° долготы (который проходит через Королевскую обсерваторию в Гринвиче). , Англия).
- Для дат, предшествующих UTC, временная база вместо этого выражается в единицах UT1 , которые представляют собой современное солнечное время Земли на нулевом меридиане.
Строка часового пояса добавляется сразу после времени в строке даты и времени. Вы можете указать « Z » в качестве строки смещения часового пояса, чтобы указать, что время указано в формате UTC. В противном случае строка часового пояса строится следующим образом:
- Символ, обозначающий знак смещения: знак плюса (« + » или U + 002B) для часовых поясов к востоку от нулевого меридиана или знак минуса (« — » или U + 002D) для часовых поясов к западу от нулевого меридиана.
- Двузначное количество часов, в которых часовой пояс смещен относительно нулевого меридиана. Это значение должно быть от 00 до 23 .
- Необязательный символ двоеточия (» : «).
- Двузначное число минут после часа; это значение должно быть от 00 до 59 .
Хотя этот формат позволяет использовать часовые пояса между -23: 59 и +23: 59, текущий диапазон смещений часовых поясов составляет от -12: 00 до +14: 00, и в настоящее время часовые пояса не смещаются от часа ничем, кроме 00 , 30 или 45 минут. Это может измениться более или менее в любое время, поскольку страны могут изменять свои часовые пояса в любое время и любым способом, которым они хотят это сделать.
Глобальная строка даты и времени | Фактическая глобальная дата и время | Дата и время на начальном меридиане |
---|---|---|
2005-06-07T00:00Z | 7 июня 2005 года в полночь по Гринвичу | 7 июня 2005 года в полночь |
1789-08-22T12:30:00.1-04:00 | 22 августа 1789 года в десятую долю секунды после 12:30 по восточному летнему времени (EDT) | 22 августа 1789 года в десятую долю секунды после 4:30 PM |
3755-01-01 00:00+10:00 | 1 января 3755 года в полночь по австралийскому восточному стандартному времени (AEST) | 31 декабря 3754 года в 14:00 |
See also
- и : см.атрибут datetime , который указывает дату или локальную дату и время, когда контент был вставлен или удален.
- Спецификация ISO 8601
- Числа и даты в руководстве по JavaScript
- JavaScript Date объект
- Объект Intl.DateTimeFormat для форматирования даты и времени для данной локали.