Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Vkládání data do stránky

12.00 - 20. dubna 2008 | Webdesign

Mikroformáty jsou určeny pro snadnější získávání dat ze stránek, jak pro lidi, tak pro stroje. Jedním z problémů je, jak vkládat data a časy, aby byly pochopitelné pro lidi i snadno vyparsovatelné strojem.

Způsobů zápisu data a času existuje nespočet. Snad každý stát/jazyk definuje jiná pravidla pro jejich zápis. Ruku na srdce, kdo z nás přesně ví, jak správně zapisovat datum a čas v naší mateřštině? Případ od případu se může lišit a i správných způsobů je hned několik. Pro přenos časové informace existují standardní formáty, ale ty jsou pro lidi mnohem méně srozumitelné. Jak skloubit snadnou čitelnost pro lidi i stroje?

Mikroformáty na scénu

Kupodivu mnoho mikroformátů obsahuje i definici pro některý časový údaj. Naštěstí, každý to neřeší jinou cestou, ale používá se návrhový vzor pro zápis data a času. V tomto vzoru se používá tag abbr, který uzavírá „lidskou interpretaci“ data a času, a v atributu title jeho strojovou podobu dle ISO 8601. Navíc se ještě využívá návrhového vzoru třída pro definování, co datum právě vyjadřuje.

Datum publikace článku můžeme zapsat následujícím způsobem:

Publikováno
<abbr class="published"
  title="2008-04-20T10:00:00Z">
  20. dubna 2008 ve 12.00
</abbr>.

V ukázce si můžete všimnout, že čas se v atributu title neshoduje s „lidskou“ podobou. Je to dáno tím, že jde o vyjádření tzv. univerzálního času UTC. Ekvivalentně lze zapsat jako středoevropský letní čas 2008-04-20T12:00:00+02:00.

Výpis v dotnetu

V ASP.NET se dají pro správný výpis použít dvě metody třídy System.DateTime. Tou první je metoda ToUniversalTime(), která čas převede na UTC, a tou druhou je ToString("s"), která vytvoří textovou podobu tzv. seřaditelného času. Nezapomeňte však přidat písmeno Z, vyjadřující UTC.

<abbr class="published"
  title="<%= item.DatePublished.ToUniversalTime().ToString("s") %>Z">
  <%= item.DatePublished.ToString("f")%>
</abbr>

Bohužel, žádný ze standardních formátů přesně neodpovídá tomu, který potřebujeme. Ale je tu možnost použít vlastní formát pro univerzální vyjádření času yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z' nebo yyyy'-'MM'-'dd'T'HH':'mm':'sszz pro System.DateTimeOffset.

Tagy: ,

Komentáře RSS

  1.  

    Jiří Bureš

    13.38 - 20. dubna 2008 | #

    Textový rámeček s kódem v tomto spotu je nečitelný. Naskočily mu posuvníky a výška zobrazovací oblasti jsou odhadem tak 4 pixely.

  2.  

    Michal Aichinger

    13.44 - 20. dubna 2008 | #

    Doufám, že se mikroformáty v tomto tvaru nikdy nerozšíří. Sice tam lehce žvatlají o kompatibilitě s HTML, nicméně je to celé zaměřeno na XHTML, takže nechápu proč si nedefinují vlastní jmenný prostor a tím celý mikroformát nedefinují. Obzlášť „návrhový vzor“ třída je fakt úsměvný.

    Nechápu proč se na jedné straně křičí po vyšší sémantice a na druhou stranu se pro !stroje! využívá docela sémanticky silná značka abbr. Ta značka má být vysvětlením běžně používané zkratky pro lidi. V tomto případě je vše na ruby. fuj.

  3.  

    Aleš Roubíček

    14.20 - 20. dubna 2008 | #

    [1] Jiří Bureš díky za upozornění, snad opraveno :)

    [2] Michal Aichinger užití značky abbr je dost kontroverzní, ne snad kvůli jeho semantice, ale špíše kvůli přístupnosti, protože např. čtečka obrazovky JAWS přečte obsah atributu title. Je dost možné, že se tento vzor ještě změní.

  4.  

    David Grudl

    14.52 - 20. dubna 2008 | #

    [2] Michal Aichinger: přesně na tohle téma jsem měl rozepsaný článek jako reakci na Alešův – mikroformáty nejsou předností XHTML, ale naopak hřebíčkem do jeho rakve. To je prostě nativní HTML technologie, kterou lze použít i v XHTML.

    Mě osobně to dost vadí. Vadí mi, že ve jmenném prostoru, kde deset let vládly CSS třídy a identifikátory společně s HTML fragmenty, se nyní snaží někdo autoritativně poroučet. Ale dejme tomu. Ovšem přesun do prostoru HTML značek je už normální drzost autorů.

  5.  

    Aleš Roubíček

    15.39 - 20. dubna 2008 | #

    [4] David Grudl prosím dopiš ho :)

  6.  

    Aleš Roubíček

    15.46 - 20. dubna 2008 | #

    Ještě poznámka ke značkám. Microformáty jsou udělaný tak, že staví na HTML. I když říkaj, že je to XHTML, tak stejně není. HTML jde rozšiřovat pouze tak, že si napíšeš vlastní DTD. Vzhledem k tomu, jak se dnes s XHTML zachází, tak je na tom prakticky stejně. Proto volání po vlastních namaspacech místo microformátů je celkem o ničem. Je to začarovaný kruh.

  7.  

    kahi

    16.13 - 20. dubna 2008 | #

    Není mi jasné co zde bude pro stroj tím rozpoznávacím znakem – že jde o datum. Snad se nebude pokoušet napasovat vzor na všechny title hodnoty abbr elementů…


    Pozn.: Tento formulář má popletený tabindex. Prosím…

  8.  

    Aleš Roubíček

    16.25 - 20. dubna 2008 | #

    [7] kahi právě hodnota atributu class.

  9.  

    kahi

    16.52 - 20. dubna 2008 | #

    [8] Aleš Roubíček tak takle: odkud jsi přejal do svého příkladu třídu publish? nedaří se mi na tamější wiki najít nic, co by připomínalo „autoritativní seznam jmen tříd“…

  10.  

    Aleš Roubíček

    16.58 - 20. dubna 2008 | #

    Zde http://microformats.org/…ting-classes. Published je součást hAtom.

    PS. tabindexy by už měly být ok.

  11.  

    kahi

    18.04 - 20. dubna 2008 | #

    [10] Aleš Roubíček → Díky. Díky.

Místo pro tvůj názor

Povinné je jméno a komentář, z e-mailu se rozpoznají Gravatary.
Komentář je formátován pomocí Texy! syntaxu.
Například: **tučný text**, *kurzíva*, "text odkazu":adresa.
Internetové adresy jsou převáděny na odkazy.
Na komentáře se můžete odkazovat pomocí [číslo komentáře].

Nový komentář