Afișați data și ora Cum se face corect
Vom întâlni datele și timpul ... bine, în fiecare zi. Când vine vorba de Web, le puteți vedea în aplicațiile dvs. mobile, în e-mailuri, în aplicațiile dvs. de mesagerie și în multe alte locuri. Totuși, în ciuda faptului că vedeau data și ora în fiecare zi și peste tot, încă nu am adoptat un format universal pentru acest lucru.
De exemplu, dacă scriu 10/05/2015, nu poți fi sigur niciodată dacă "10" este luna sau data, dacă nu îți spun de unde sunt. Uneori se modifică formatul, alteori limba.
Este important ca, în calitate de dezvoltatori web, să acordăm atenție datei și timpului în care ne ocupăm în proiectele noastre, astfel încât să putem să le răspundă locuitorilor geografici diferiți fără nici un conflict. În acest post vom discuta ce să evitați și ce să îmbrățișați când este vorba de afișarea datei-oră.
globalizarea
Să presupunem că nu vrem să convertim și să afișăm diferite formate de dată și oră diferitelor spectatori din întreaga lume, ce putem face? Alegem un format global și rămânem cu el. Iată unde intră în joc anumite standarde. Înainte de a ajunge la asta, trebuie să recomand că W3C recomandă să folosim formatul de dată ISO 8601 cu fusul orar UTC.
ISO 8601
ISO 8601 descrie un mod acceptat pe plan internațional de a reprezenta datele și orele folosind numere.
Formatul pentru data completă este; AAAA-LL-ZZ
, de exemplu: 2015-07-28
AAAA = an 4 cifre
MM = luna cu 2 cifre (01 = ianuarie, etc.)
DD = zi cu 2 cifre (01 la 31)
Pentru data-dată completă;AAAA-LL-ZZToo: mm: ss.s
, de exemplu: 2015-07-28T21: 15: 18.45
T = Se separă data și ora conform ISO 8601
mm = minut de 2 cifre (00 până la 59)
ss = secundă de două cifre (00 până la 59)
s = Fracțiunea zecimală a unei secunde, 1 sau mai multe cifre
Rețineți că, deoarece nu a fost menționată nici o fus orar în exemplul de mai sus, este de presupus că timpul este în fusul orar local. Dacă ați decis să utilizați fusul orar UTC, trebuie doar să adăugați Z la valoarea pentru a denumi UTC
De exemplu: 2015-07-28T21: 15: 18.45Z
Dar dacă doriți să afișați ora locală, atunci puteți adăuga o compensarea zonei de fus orar pentru UTC la valoarea în formate +hh: mm
sau -hh: mm
după cum este necesar.
De exemplu: Să presupunem 2015-07-28T21: 15: 18.45
este în fusul orar EST (Est Standard Time), care se află la 5 ore în spatele fusului orar UTC.
Pentru ao reprezenta cu offsetul UTC, scriem 2015-07-28T21: 15: 18.45-05: 00
care este echivalent cu timpul UTC 2015-07-29T02: 15: 18.45Z
.
Din nou Z este anexat pentru a reprezenta faptul că data-dată afișată este în timpul UTC.
UTC vs. GMT
Ambele sunt aceleași și totuși diferite. Până acum ați întâlnit probabil GMT cel puțin o dată; în timp ce configurați data-dată pe telefonul mobil sau pe computer. Este cea mai populara fus orar de fus orar recunoscut pe plan mondial, deoarece a existat mai mult decat UTC.
În timp ce unii pot spune că ambii sunt aceiași, dar nu sunt, UTC este succesorul GMT și este menținut de Uniunea Internațională a Telecomunicațiilor. Este recomandat să se facă referire la timpul bazat pe UTC și nu pe GMT.
Utilizați numele lunilor
Standardul ISO folosește numai numerele în reprezentarea datei pentru a evita conflictele lingvistice. Dar, dacă conținutul aplicației dvs. web va fi în limba engleză, atunci ar trebui să luați în considerare scrierea de luni în limba engleză, mai degrabă decât în numere.
In loc de 2015-07-28
, 28, iulie, 2015
este mai ușor de înțeles de mulți, și mai puțin confuz.
Localizare
Există momente în care vrem să fim foarte specifici cu serviciile noastre și dorim să reprezentăm data și ora în fusurile orare și limbile locale. Există multe biblioteci și API-uri disponibile pentru dezvoltatorii web pentru a utiliza și afișa datele și orele în funcție de regiunea de acces.
Puteți obține locația implicită a browserului fie prin interpretarea codului Accept-Language
antet de cerere sau prin navigator.language sau navigator.browserLanguage
Obiect JavaScript, dar cea mai bună metodă este de a permiteți utilizatorului să aleagă o locație în aplicația dvs. deoarece fostele căi nu sunt foarte fiabile.
Odată ce ați localizat, aveți posibilitatea să formatați ora datei în funcție de acesta, de exemplu utilizând Internaționalizarea API, puteți să formatați o dată utilizând toLocaleDateString
în JavaScript, de exemplu, myDate.toLocaleDateString ( 'ko-KR')
va întoarce o dată formatată în formatul utilizat în Coreea de către nativii vorbitori de coreeană.
Ora de vară (DST)
În anumite țări, ora de vară se face prin transmiterea ceasurilor cu o oră în timpul verii pentru a utiliza lumina soarelui disponibilă. Fiți conștienți de DST pentru a ține pasul cu momentele locale din serviciile dvs..
Nici un an cu două cifre
În timp ce personalizați data și ora localizării, nu folosiți formatul din două cifre pentru anul în niciun moment. Suntem deja în secolul 21. Folosind ani ca 64
, 99
etc va fi supărător în viitor. Dacă aveți deja un sistem de două cifre pe an, luați în considerare modificarea acestuia.
Anul de albit și alte calendare
Să terminăm acest post cu câteva lucruri diverse de reținut în timp ce ne ocupăm de date. Dacă nu utilizați nici o bibliotecă sau un API pentru date și doriți să le ocupați pe cont propriu (adică nu recomandat, totuși), nu uitați să arătați pe 29 februarie datele introduse pentru anii de salt.
De asemenea, este demn de remarcat faptul că Calendarul gregorian nu este singura formă de calendar disponibilă și utilizată în toată lumea. Există puține calendare regionale pe care localnicii le urmează, mai ales când vine vorba de festivități.
Referințe
- Uniunea Internațională a Telecomunicațiilor: Statutul studiului coordonat al timpului universal (UTC) în ITU-R
- ISO: ISO 8601 - Formatul datei și orei
- Wikipedia: Ora universală coordonată
- Wikipedia: Timpul de vară
- Wikipedia: timpul mediu al Greenwich
- Notă W3C: formate de dată și oră
- W3C Sfaturi: Folosiți formatul de dată internațională (ISO)