Kurs HTML

Lekcja 9.8: Data i czas (<time>)

Semantyczne oznaczanie dat i czasów

Ludzie potrafią interpretować daty i czasy zapisane w różnych formatach (np. "jutro", "w zeszły wtorek", "5 maja 2025", "14:30"). Jednak dla maszyn (wyszukiwarek, kalendarzy, czytników ekranu) takie niejednoznaczne zapisy są trudne do zrozumienia. HTML5 wprowadził element <time>, aby umożliwić semantyczne oznaczanie dat i/lub czasów w sposób zrozumiały zarówno dla ludzi, jak i dla maszyn.

Element <time>

Element <time> reprezentuje określoną chwilę w czasie lub przedział czasowy. Jego główną zaletą jest możliwość dodania atrybutu datetime, który zawiera datę/czas w precyzyjnym, maszynowo czytelnym formacie.

Atrybut `datetime`

Jest to kluczowy atrybut elementu <time>. Jego wartość musi być poprawną datą lub czasem w jednym z dozwolonych formatów. Najważniejsze formaty to:

Jeśli atrybut datetime nie zostanie podany, treść wewnątrz <time> musi być sama w sobie poprawną datą lub czasem w jednym z tych formatów.

Korzyści z używania <time>

Przykład z datą publikacji:

<p>Artykuł opublikowano <time datetime="2025-04-30">30 kwietnia 2025</time>.</p>

Przykład z datą i czasem:

<p>Spotkanie rozpocznie się <time datetime="2025-05-15T10:00:00+02:00">15 maja o 10:00 czasu lokalnego</time>.</p>

Przykład z czasem trwania:

<p>Film trwa <time datetime="PT2H15M">2 godziny i 15 minut</time>.</p>

Przykład bez atrybutu `datetime` (treść musi być poprawnym formatem):

<p>Data wydarzenia: <time>2026-01-01</time></p>

Wygląd elementu <time>

Domyślnie element <time> jest elementem liniowym (inline) i nie ma żadnego specjalnego formatowania wizualnego. Jego wygląd można kontrolować za pomocą CSS, tak jak każdego innego elementu liniowego.

Zadanie praktyczne (z rozwiązaniem)

Zadanie: W stopce artykułu na blogu dodaj informację o dacie publikacji, używając znacznika <time> z odpowiednim atrybutem datetime. Użyj czytelnej dla człowieka formy daty wewnątrz znacznika.

Rozwiązanie:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Artykuł z datą publikacji</title>
    <style>
        article footer {
            margin-top: 20px;
            padding-top: 10px;
            border-top: 1px solid #eee;
            font-size: 0.9em;
            color: #555;
        }
    </style>
</head>
<body>

<article>
    <header>
        <h2>Mój Pierwszy Post na Blogu</h2>
    </header>
    
    <p>Treść mojego pierwszego posta...</p>
    
    <footer>
        <p>Opublikowano: <time datetime="2025-04-30">30 kwietnia 2025</time> przez Jana Kowalskiego.</p>
    </footer>
</article>

</body>
</html>

Dodatkowe zadania do samodzielnego wykonania:

  1. Dodaj informację o godzinie rozpoczęcia i zakończenia wydarzenia, używając <time> z formatem daty i czasu oraz strefą czasową.
  2. Oznacz czas trwania przygotowania przepisu kulinarnego za pomocą <time> i formatu czasu trwania (np. PT1H30M).
  3. Spróbuj użyć JavaScriptu, aby odczytać wartość atrybutu datetime z elementu <time> i wyświetlić ją w innym formacie.

Najczęściej zadawane pytania

Do czego służy znacznik <time>?

Do semantycznego oznaczania daty i/lub czasu w sposób zrozumiały dla ludzi (treść elementu) i maszyn (poprzez atrybut datetime).

Jakie formaty obsługuje atrybut datetime?

Obsługuje standardowe formaty ISO 8601 dla daty (YYYY-MM-DD), czasu (hh:mm:ss), daty i czasu (YYYY-MM-DDThh:mm:ss), czasu ze strefą czasową oraz czasu trwania (np. PT2H).

Czy atrybut datetime jest obowiązkowy?

Nie, ale jeśli go nie ma, treść wewnątrz <time> musi sama być poprawną datą/czasem w jednym z obsługiwanych formatów maszynowych, co często jest mniej czytelne dla człowieka.

Jakie korzyści daje używanie <time>?

Poprawia SEO (wyszukiwarki rozumieją daty), zwiększa dostępność (czytniki ekranu lepiej interpretują daty) i ułatwia automatyczne przetwarzanie dat przez skrypty lub aplikacje (np. kalendarze).

Czy <time> zmienia wygląd tekstu?

Nie, domyślnie jest to element liniowy bez specjalnego formatowania. Jego wygląd można dowolnie modyfikować za pomocą CSS.