Zobrazenie dátumu a času Ako to urobiť správne
Narazíme proti nim dátum a čas ... no, každý deň. Keď príde na web, môžete ich nájsť vo svojich mobilných aplikáciách, v e-mailoch, v aplikáciách na odosielanie správ a na mnohých ďalších miestach. Aj napriek tomu, že každý deň a všade vidí dátum a čas, zatiaľ sme za ne museli prijať univerzálny formát.
Napríklad, ak píšem 10.5.2015, nikdy si nemôžete byť istí, či je "10" mesiac alebo dátum, ak vám nepoviem, odkiaľ som. Niekedy sa formát mení, inokedy v jazyku.
Je dôležité, aby sme ako weboví vývojári venovali pozornosť dátumu a času, s ktorými sa zaoberáme v našich projektoch, aby sme mohli zabezpečiť ich rôznym zemepisným obyvateľom bez konfliktu. V tomto príspevku budeme diskutovať čo sa má vyhnúť a čo treba prijať pokiaľ ide o zobrazenie dátumu a času.
Globalizácia
Povedzme, že nechceme konvertovať a zobrazovať rôzne dátumové a časové formáty rôznym divákom na celom svete, čo môžeme robiť? Vybrali sme jeden globálny formát a držali sa ho. Tu je miesto, kde vstupujú do hry niektoré štandardy. Skôr než sa k tomu dostaneme, musím vám odporučiť, aby W3C odporúčala použiť formát dátumu ISO 8601 s časovým pásmom UTC.
ISO 8601
ISO 8601 opisuje medzinárodne uznávaný spôsob, ako reprezentovať dátumy a časy pomocou čísel.
A formát úplného dátumu je; YYYY-MM-DD
, napríklad: 2015-07-28
YYYY = 4-miestny rok
MM = dvojmiestny mesiac (01 = január atď.)
DD = dvojciferný deň (01 až 31)
Pre úplný dátum-čas;YYYY-MM-DDThh: MM: ss.s
, napríklad: 2015-07-28T21: 15: 18.45
T = Oddelenie dátumu a času podľa ISO 8601
mm = 2-miestna minúta (00 až 59)
ss = 2-miestne sekundy (00 až 59)
s = desatinný zlomok sekundy, 1 alebo viac číslic
Upozorňujeme, že keďže v predchádzajúcom príklade neboli uvedené žiadne časové pásma, je potrebné predpokladať, že čas je v miestnom časovom pásme. Ak ste sa rozhodli použiť časovú zónu UTC, stačí pridať Z na hodnotu označujúcu UTC
Napríklad: 2015-07-28T21: 15: 18.45Z
Ak však chcete zobraziť miestny čas, môžete pridať a časové pásmo offset pre UTC hodnotu vo formátoch +hh: mm
alebo -hh: mm
podľa potreby.
Napríklad: Predpokladajme 2015-07-28T21: 15: 18.45
je v časovom pásme EST (východný štandardný čas), ktorý trvá 5 hodín za časovou zónou UTC.
Na to, aby sme ju zastupovali s posunom UTC, píšeme 2015-07-28T21: 15: 18,45 až 05: 00
čo je ekvivalent času UTC 2015-07-29T02: 15: 18.45Z
.
znovu Z je pripojená, aby zobrazovala, že zobrazený dátum je v čase UTC.
UTC vs. GMT
Oba sú rovnaké, ale iné. Teraz ste pravdepodobne narazili na GMT aspoň raz; pri nastavovaní dátumu a času vo vašom mobilnom telefóne alebo počítači. Je to najpopulárnejšia časová pásma rozpoznaná po celom svete, pretože existovala dlhšie ako UTC.
Zatiaľ čo niektorí môžu povedať, že obaja sú rovnakí, ale nie sú, UTC je nástupcom GMT a je udržiavaná Medzinárodnou telekomunikačnou úniou. Odporúča sa odvolávať sa na čas založený na UTC a nie na GMT.
Použite názov mesiacov
Norma ISO používa iba čísla v zastúpení dátumu, aby sa vyhli akýmkoľvek jazykovým konfliktom. Ak však obsah vašej webovej aplikácie bude v angličtine, mali by ste zvážiť písanie mesiacov v angličtine a nie v číslach.
Namiesto 2015-07-28
, 28. júl 2015
je ľahšie pochopiteľné pre mnohých a menej mätúce.
lokalizácia
Sú chvíle, kedy chceme byť veľmi špecifické s našimi službami a chceli by sme reprezentovať dátum a čas v miestnych časových pásmach a jazykoch. Existuje veľa knižníc a rozhraní API pre vývojárov webových stránok, ktoré využívajú a zobrazujú dátumy a časy podľa prístupovej oblasti.
Predvolené nastavenie prehliadača môžete získať buď interpretáciou Accept-Language
žiadosť hlavičky alebo cez navigátor.jazyka alebo navigátor.BrowserLanguage
JavaScript objekt, ale najlepšia metóda je nech používateľ si v aplikácii zvolí miestne nastavenie pretože predchádzajúce spôsoby nie sú veľmi spoľahlivé.
Keď máte lokalizáciu, môžete formátovať dátum podľa toho, napríklad pomocou API pre internacionalizáciu, môžete formátovať dátum pomocou toLocaleDateString
napríklad v jazyku JavaScript, myDate.toLocaleDateString ( 'ko-KR')
vráti formátovaný dátum vo formáte použitom v Kórei korejsky hovoriaci domorodci.
Letný čas (DST)
V niektorých krajinách sa letný čas uskutočňuje presmerovaním hodinových hodín v lete, aby sa využilo dodatočné slnečné svetlo. Buďte si vedomí DST, aby ste udržali krok s miestnymi časmi v službách.
Žiadny dvojciferný rok
Pri prispôsobovaní dátumu a času lokalizácie nepoužívajte v žiadnom bode dvojmiestny formát pre daný rok. Už sme v 21. storočí. Použitie rokov ako 64
, 99
atď. budú v budúcnosti znepokojujúce. Ak už máte systém dvojciferného roka, zvážte jeho zmenu.
Leap year a ďalšie kalendáre
Ukončime tento príspevok s niekoľkými rôznymi vecami, ktoré si treba pamätať pri práci s termínmi. Ak pre dátumy nepoužívate žiadnu knižnicu ani rozhranie API a chcete s nimi zaobchádzať samostatne (čo je nie napriek tomu odporúčame), nezabudnite ukázať 29. februára vstupy pre prechodné roky.
Je tiež potrebné poznamenať, že Gregoriánsky kalendár nie je jediný dostupný a používaný kalendár po celom svete. Existuje len málo regionálnych kalendárov, ktoré miestni obyvatelia sledujú, najmä pokiaľ ide o slávnosti.
Referencie
- Medzinárodná telekomunikačná únia: Štúdia o koordinácii univerzitného času (UTC) v ITU-R
- ISO: ISO 8601 - Formát dátumu a času
- Wikipedia: Koordinovaný univerzálny čas
- Wikipedia: Letný čas
- Wikipedia: Greenwich Mean Time
- W3C Poznámka: Formáty dátumu a času
- W3C Tipy: Použite medzinárodný formát dátumu (ISO)