Visualizza data e ora Come farlo correttamente
Li incontriamo con date e ora ... beh, ogni giorno. Quando si tratta di Web, è possibile individuarli nelle app mobili, nelle e-mail, nelle app di messaggistica e in molti altri luoghi. Eppure a dispetto di vedere data e ora ogni giorno e ovunque, dobbiamo ancora adottare un formato universale per questo.
Ad esempio, se scrivo il 10/05/2015, non puoi mai essere sicuro che quel "10" sia il mese o la data a meno che non ti dica da dove vengo. A volte il formato cambia, altre volte la lingua.
È importante che, come sviluppatori web, prestiamo attenzione alla data e all'ora in cui ci occupiamo dei nostri progetti, in modo che possiamo li assiste a diversi abitanti geografici senza alcun conflitto. In questo post parleremo cosa evitare e cosa abbracciare quando si tratta di visualizzare la data-ora.
Globalizzazione
Diciamo che non vogliamo convertire e mostrare diversi formati di data e ora a diversi spettatori in tutto il mondo, cosa possiamo fare? Selezioniamo un formato globale e ci atteniamo a questo. Qui è dove entrano in gioco alcune norme. Prima di arrivare a questo, devo avvisare che il W3C raccomanda di utilizzare il formato di data ISO 8601 con fuso orario UTC.
ISO 8601
ISO 8601 descrive un modo accettato a livello internazionale per rappresentare le date e le ore usando i numeri.
E il formato per la data completa è; AAAA-MM-DD
, per esempio: 2015/07/28
AAAA = anno a 4 cifre
MM = mese a 2 cifre (01 = gennaio, ecc.)
DD = giorno a 2 cifre (da 01 a 31)
Per data-ora completa;AAAA-MM-GG hh: mm: ss.s
, per esempio: 2015-07-28T21: 15: 18.45
T = Per separare data e ora secondo ISO 8601
mm = minuto a 2 cifre (da 00 a 59)
ss = 2 cifre seconde (da 00 a 59)
s = frazione decimale di un secondo, 1 o più cifre
Si noti che non è stato menzionato il fuso orario nell'esempio precedente, pertanto è necessario presumere che l'ora sia nel fuso orario locale. Se hai deciso di utilizzare il fuso orario UTC, aggiungi Z al valore per indicare UTC
Per esempio: 2015-07-28T21: 15: 18.45Z
Ma se desideri visualizzare l'ora locale, puoi aggiungere un offset fuso orario per UTC al valore nei formati +hh: mm
o -hh: mm
come necessario.
Ad esempio: supponiamo 2015-07-28T21: 15: 18.45
è nel fuso orario EST (Eastern Standard Time) che è in ritardo di 5 ore rispetto al fuso orario UTC.
Per rappresentarlo con l'offset UTC scriviamo 2015-07-28T21: 15: 18,45-05: 00
che è equivalente all'ora UTC 2015-07-29T02: 15: 18.45Z
.
Ancora Z viene aggiunto per indicare che la data visualizzata è in ora UTC.
UTC contro GMT
Entrambi sono uguali ma diversi. Ormai probabilmente hai incontrato il GMT almeno una volta; durante l'impostazione della data-ora nel tuo cellulare o computer. È il fuso orario più popolare riconosciuto in tutto il mondo poiché è esistito più a lungo di UTC.
Mentre alcuni potrebbero dire che entrambi sono uguali ma non lo sono, l'UTC è un successore del GMT ed è gestito dall'International Telecommunications Union. Si consiglia di fare riferimento al tempo in base a UTC e non a GMT.
Usa il nome dei mesi
Lo standard ISO utilizzava solo numeri nella rappresentazione della data per evitare conflitti linguistici. Ma, se il contenuto della tua applicazione web sarà in inglese, dovresti prendere in considerazione la possibilità di scrivere mesi in inglese anziché in numeri.
Invece di 2015/07/28
, 28, luglio 2015
è più facile da capire da molti e meno confuso.
Localizzazione
Ci sono momenti in cui vogliamo essere molto specifici con i nostri servizi e vorremmo rappresentare la data e l'ora in fusi orari e lingue locali. Ci sono molte librerie e API disponibili per gli sviluppatori web per utilizzare e visualizzare le date e gli orari secondo la regione di accesso.
È possibile ottenere le impostazioni internazionali predefinite del browser interpretando il file Accept-Language
richiesta di intestazione o tramite il navigator.language o navigator.browserLanguage
Oggetto JavaScript, ma il metodo migliore è quello di lascia che l'utente scelga una localizzazione nella tua applicazione poiché le prime modalità non sono molto affidabili.
Una volta ottenuta la locale, è possibile formattare la data in base ad essa, ad esempio utilizzando API di internazionalizzazione, puoi formattare una data usando toLocaleDateString
in JavaScript, per esempio, myDate.toLocaleDateString ( 'ko-KR')
restituirà una data formattata nel formato utilizzato in Corea dai nativi di lingua coreana.
Ora legale (ora legale)
In alcuni paesi l'ora legale viene fatta inoltrando gli orologi di un'ora in estate per sfruttare la luce solare extra disponibile. Sii consapevole dell'ora legale per stare al passo con le ore locali nei tuoi servizi.
Nessun anno a due cifre
Durante la personalizzazione della data e dell'ora per la localizzazione, non utilizzare il formato a due cifre per l'anno in qualsiasi punto. Siamo già nel 21 ° secolo. Usando anni come 64
, 99
ecc. sarà problematico in futuro. Se si dispone già di un sistema a due cifre, prendere in considerazione la possibilità di cambiarlo.
Anno bisestile e altri calendari
Lasciamo terminare questo post con alcune cose varie da ricordare mentre gestiamo le date. Se non si utilizza alcuna libreria o API per le date e si preferisce occuparsene da soli (che è non raccomandato comunque), non dimenticare di mostrare il 29 febbraio negli input per gli anni bisestili.
Inoltre, vale la pena notare che il Il calendario gregoriano non è l'unica forma di calendario disponibile e utilizzata tutto il mondo. Ci sono pochi calendari regionali che la gente del posto segue, specialmente quando si tratta di feste.
Riferimenti
- Unione internazionale delle telecomunicazioni: stato dello studio UTC (Coordinated Universal Time) in ITU-R
- ISO: ISO 8601 - Formato data e ora
- Wikipedia: Coordinated Universal Time
- Wikipedia: ora legale
- Wikipedia: Tempo medio di Greenwich
- Nota W3C: formati di data e ora
- Suggerimenti W3C: utilizza il formato di data internazionale (ISO)