Элемент `time`
Элемент <time> в HTML представляет собой машинно-читаемые дату, время, или длительность. Это можно использовать при создании расписания событий, архивирования и других функций, основанных на времени. WordPress использует элемент <time> в теме по умолчанию.
Reddit также использует этот элемент:

Reddit использует элемент <time> для простановки даты.
Экскурс в историю
Путь элемента <time> оказался довольно тернист. Еще в 2009 году он был добавлен в спецификацию HTML5. Два года спустя, в 2011 году, спецификация была пересмотрена и этот элемент заменили элементом <data>, который обладает гораздо более широкой областью применения.
Но в том же году <time> был добавлен обратно с некоторыми модернизированными функциями. Без сомнений, вы можете использовать его!
Теги и атрибуты
<time> - один из HTML-тегов. Ниже пример отображения даты Ноябрь 2011:
<time>2011-11</time>
Текст внутри похож на корректный атрибут тега datetime (по-крайней мере, на текущий момент). Но это не обязательно должно быть именно так. Вы можете переместить этот текст внутрь атрибута datetime и использовать любой другой:
<time datetime="2011-11">Холодный зимний месяц</time>
Атрибут элемента datetime делает элемент time уникальным. Он представляет собой дату, время, или длительность, выраженные в тексте, который читабелен компьютером. Понятным для компьютера, а не для человека, заметьте! Очень специфичный формат.
Это, возможно, немного более общий формат для человеческого восприятия текстовое представления даты-времени.
<time datetime="2011-11">Ноябрь, 2011</time>
10 вариантов отображения
Есть несколько стандартных вариантов форматирования атрибута datetime.
Год и месяц:
2014-06
Очень просто. Значение года предшествует значению месяца.
Дата:
1969-07-16
Год, месяц, и затем день.
Дата без значения года:
12-31
Месяц отображается прежде, чем год.
Только время:
14:54:39.929
Часы, минуты и затем секунды. Секунды опциональны. В значении «Доли секунды» можно использовать до трех цифр.
Дата и время:
2013-11-20T14:54
Сочетание значений даты и времени, разделенных заглавной "T". Заглавная "T" может быть заменена пробелом.
Смещение часового пояса:
+06:00
Начинается со знака "+" или "-". Двоеточие (:) не обязательно. +00:00, или всемирное координированное время (UTC) может быть отображено с помощью заглавной "Z".
Местные дата и время:
2019-12-31T23:59:59-02:00
То же самое, что и просто дата и время, только добавляется часовой пояс. И снова, заглавная "T" может быть заменена пробелом.
Год и неделя:
2010-W21
За значением года следует "W" с номером недели.
Только год:
1776
В значении должно быть больше, чем 4 цифры, потому `0001` и `12345` будет работать.
Длительность (метод первый):
P2DT2H30M10.501S
Заглавная "P", не обязательное значение дня, заглавная "T", затем не обязательные значения часов, минут и секунд. Все буквы заглавные.
Длительность (метод второй):
1w 2d 2h 30m 10.501s
Неделя (w), день (d), час (h), минута (m), и секунды (s). Могут быть использованы как заглавные, так и строчные буквы. Пробелы не обязательны.
Примеры
Релиз Google Gmail Blue состоялся <time datetime="2013-04-01">1 Апреля, 2013</time>.
Челябинский метеорит прошел сквозь атмосферный слой Земли в районе России <time datetime="2013-02-15T09:20+06:00">15 февраля 2013 около 09:20 ЕКТРБР(03:20 UTC)</time>.
Выполнение миссии Apollo 13 длилось <time datetime="5d 22h 54m 41s">5 дней, 22 часа, 54 минуты и 41 секунду</time>.
Проблемы с форматированием Datetime?
Используя это небольшую утилиту, вы можете вводить точное значение даты или времени (либо же оба значения сразу) и на выходе получать корректное значение дата-время.
Поддержка браузерами
Браузерная поддержка не главная проблема, если говорить об элементе <time>. Если браузер знаком с элементом - великолепно. Если нет - не беда, он будет рассматривать его как обычный inline-элемент. Атрибут datetime обрабатывается таким же образом.
Ниже представлен интерфейс DOM связанный с элементом time. Спецификация элемента dateTime доступна по ссылке на этот элемент:
<p>Концерт состоится <time datetime="2001-05-15 19:00">15 мая</time>.</p> <script> var time = document.getElementsByTagName("time")[0]; console.log(time.dateTime); // outputs "2001-05-15 19:00" </script>
Эта конструкция поддерживается только в Firefox, и, в любом случае, она не особенно полезна, так как все что он делает - возвращает этот атрибут (он даже не возвращает значение, если при нем нет атрибута, причем текст является действующим значением, которое, казалось бы, должно нести некий смысл).
Какие же преимущества несет в себе использование элемента <time>?
Не сложно представить себе варианты использования однозначных дат на веб-страницах. Браузер может предложить добавлять события в календарь пользователя.
Тайский локализованный браузер может предложить превратить григорианские даты в даты тайской буддийской эпохи. «Японский» браузер сможет привести <time>16:00</time> в локализованный вид "16:00時". Агрегаторы контента могут использовать визуальные таймбары событий.
Поисковые системы могут выдавать более взвешенные результаты поиска. Например, во время недавнего сильного снегопада в Великобритании, я искал расписание работы школ в моем городе и обнаружил, что школы моих детей были закрыты.
А после того, как мне позвонили из школы с вопросом, почему моих детей не было на занятиях, я повторно изучил ту страницу с расписанием. Мелким шрифтом в нижней части страницы были написаны слова «Опубликовано 5 января 2008».
Я надеюсь, что в будущем поисковые системы будут оценивать текущие страницы более высоко, когда поиск связан с текущими событиями.
И еще
Вы можете сделать так, чтобы элемент <time> добавлялся в атрибут заголовка, чтобы представить более подробную информацию для пользователя. То есть вы можете предоставить одну и ту же информацию тремя способами:
- Формат, удобный для понимания человеком;
- Более детальный формат, ориентированный на понимание человеком;
- Машиночитаемый формат.
Вот код на CodePen:

А это код Rails, который выводит различные форматы (STRFTIME очень удобный для этих целей инструмент):
<time datetime="<%= @pen.created_at.strftime("%Y-%m-%dT%H:%M") %>" title="<%= @pen.created_at.strftime("%Y-%m-%d at %I:%M %p") %>"> <%= @pen.created_at.strftime("%B %d, %Y") %> </time>
Вы уже используете в ваших проектах?