Те кто следил за развитием HTML5 знают, что на одном из этапов тег <time>
был исключен из HTML, а затем снова восстановлен с новой улучшенной семантикой.
Как и прежде, вы можете поместить все что угодно между открывающим и закрывающим тегами — это видимая часть для пользователя. Информация для машинного считывания находится в атрибуте datetime
. Даты задаются в формате YYYY-MM-DD.
До выхода HTML5 можно было указывать только точные даты. Например, 13 ноября 1905 года, записывалось следующим образом: <time datetime="1905-11-13">
, однако «Ноябрь 1905 года» никак нельзя было разметить. Из-за этого возникали проблемы в случаях когда точные даты небыли известны.
Теперь же, «неточные даты» поддерживаются:
<time datetime="1905">
— 1905 год.<time datetime="1905-11">
— Ноябрь 1905 года.<time datetime="11-13">
— 13 Ноября (какого либо года).<time datetime="1905-W21">
— 21-я неделя 1905 года.
Как и прежде, время нужно указывать в 24-часовом формате, а разделять дату и время теперь можно не только латинской «T», но и пробелом. Соответственно обе записи корректны:
<time datetime="1905-11-13T09:00">
<time datetime="1905-11-13 09:00">
Также, вы можете указать временную зону для нужного региона. Буква «Z», добавленная после времени, обозначит часовой пояс UTC. В других случаях нужно использовать смещение относительно UTC:
<time datetime="09:00Z">
— 9 часов утра в поясе UTC.<time datetime="09:00-05:00">
— 9 часов утра в поясе -5 позади UTC.<time datetime="09:00+05:45">
— 9 часов утра в Непале, то есть UTC + 5 часов и 45 минут.
Продолжительность
С новым переосмысленным в HTML5 тегом <time>
, вы можете указывать продолжительность, используя префикс «P» (period).
Для указания дней, в аттрибуте datetime используется латинская «D», для часов «H», для минут «M», а для секунд «XQ». Шутка — для секунд «S».
Вы можете разделять эти компоненты пробелами (но лучше этого не делать). Соответственно обе записи <time datetime="P4D">
и <time datetime="P 4 D">
являются эквивалентными и обозначают продолжительность 4 дня.
Чтобы быть более точным, можно использовать латинскую «T» после «P»: <time datetime="PT23H 9M 2.343S">
что означает продолжительность 23 часа 9 минут и 2.345 секунды.
Кроме того, вы можете использовать другие компоненты <time> формирующие продолжительность.
Что бы вы ни выбрали, внутреннее представление продолжительности будет исчисляться в секундах. Поэтому вы не можете указать продолжительность в месяцах, так как месяц не является точной единицей времени, он может содержать от 28 до 31 дней, и соответственно иметь разное количество секунд. Такая же ситуация и с годом, он тоже не имеет точное количество секунд, он содержит 12 месяцев, но февраль иногда может иметь дополнительный день.
По-прежнему нельзя указывать даты до нашей эры, так как годы не могут быть отрицательными. Также вы не можете указывать диапазон дат. Для разметки диапазона, например “13.01.2020 по 16.01.2020”, нужно использовать два отдельных тега <time>
.
Автор оригинала: Bruce Lawson