Datum en tijd weergeven Hoe u het goed moet doen
We komen die datums en tijd tegen ... nou ja, elke dag. Als het gaat om het web, kunt u ze herkennen in uw mobiele apps, in e-mails, in uw berichten-apps en op vele andere plaatsen. Maar toch, elke dag en overal zie je datum en tijd, we moeten er nog een universeel formaat voor aannemen.
Als ik bijvoorbeeld 10/05/2015 schrijf, weet je nooit zeker of die "10" de maand of de datum is, tenzij ik je vertel waar ik vandaan kom. Soms verandert het formaat, andere keer de taal.
Het is van belang dat we als webontwikkelaars aandacht besteden aan de datum en tijd waarmee we in onze projecten omgaan, zodat we dat kunnen tegemoet te komen aan verschillende geografische inwoners zonder enig conflict. In deze post zullen we bespreken wat te vermijden en wat te omhelzen als het gaat om het weergeven van datum-tijd.
globalisering
Laten we zeggen dat we geen verschillende datum- en tijdnotaties willen converteren naar verschillende kijkers over de hele wereld, wat kunnen we doen? We kiezen een globaal formaat en houden het bij. Hier komt een aantal normen om de hoek kijken. Voordat we dat doen, moet ik adviseren dat W3C aanbeveelt om het datumformaat van de ISO 8601 met UTC-tijdzone te gebruiken.
ISO 8601
ISO 8601 beschrijft een internationaal geaccepteerde manier om datums en tijden met getallen weer te geven.
En het formaat voor de volledige datum is; YYYY-MM-DD
, bijvoorbeeld: 2015/07/28
JJJJ = jaar met 4 cijfers
MM = 2 cijfers maand (01 = januari, etc.)
DD = 2-cijferige dag (01 tot 31)
Voor volledige datum-tijd;YYYY-MM-DDTuu: mm: ss.s
, bijvoorbeeld: 2015-07-28T21: 15: 18.45
T = datum en tijd scheiden volgens ISO 8601
mm = 2-cijferige minuut (00 tot en met 59)
ss = 2 cijfers seconden (00 tot en met 59)
s = Decimale fractie van een seconde, 1 of meer cijfers
Houd er rekening mee dat er geen tijdzone is vermeld in het bovenstaande voorbeeld, dus er moet worden aangenomen dat de tijd in de lokale tijdzone ligt. Als je hebt besloten om de UTC-tijdzone te gebruiken, voeg je gewoon toe Z tot de waarde om UTC aan te duiden
Bijvoorbeeld: 2015-07-28T21: 15: 18.45Z
Maar als u lokale tijd wilt weergeven, kunt u een tijdzone offset voor UTC naar de waarde in de indelingen +hh: mm
of -hh: mm
zoals nodig.
Bijvoorbeeld: laten we aannemen 2015-07-28T21: 15: 18.45
bevindt zich in de tijdzone EST (Eastern Standard Time) die 5 uur achterloopt op UTC-tijdzone.
Om het te vertegenwoordigen met UTC-offset schrijven we 2015-07-28T21: 15: 18,45-05: 00
die gelijk is aan de UTC-tijd 2015-07-29T02: 15: 18.45Z
.
Nog een keer Z wordt toegevoegd om aan te geven dat de weergegeven datum-tijd in UTC-tijd is.
UTC versus GMT
Ze zijn allebei hetzelfde maar toch verschillend. Inmiddels bent u waarschijnlijk minstens één keer GMT tegengekomen; tijdens het instellen van de datum-tijd op uw mobiele telefoon of computer. Het is wereldwijd de meest populaire tijdzone die wordt herkend sinds het langer bestaat dan UTC.
Sommigen zullen misschien zeggen dat ze allebei hetzelfde zijn, maar dat zijn ze niet, UTC is een opvolger van GMT en wordt onderhouden door de International Telecommunications Union. Het wordt aanbevolen om te verwijzen naar tijd op basis van UTC en niet GMT.
Gebruik de naam van de maand
De ISO-norm gebruikte alleen cijfers in de datumweergave om taalconflicten te voorkomen. Maar als de inhoud van uw webapplicatie in het Engels is, moet u overwegen om maanden in het Engels te schrijven in plaats van in cijfers.
In plaats van 2015/07/28
, 28 juli 2015
is door velen veel gemakkelijker te begrijpen en minder verwarrend.
Localization
Er zijn tijden dat we heel specifiek willen zijn met onze diensten en de datum en tijd willen weergeven in lokale tijdzones en talen. Er zijn veel bibliotheken en API's beschikbaar voor webontwikkelaars om gebruik te maken en de datums en tijden weer te geven volgens de toegangsregio.
U kunt de standaardlandinstelling van de browser verkrijgen door de Accept-Language
aanvraag header of via de navigator.language of navigator.browserLanguage
JavaScript-object, maar de beste methode is om laat de gebruiker een locale in uw toepassing kiezen omdat de vroegere wegen niet erg betrouwbaar zijn.
Zodra u de locale hebt, kunt u de datum volgens deze indeling opmaken, bijvoorbeeld met behulp van de Internationalisatie API, je kunt een datum opmaken met behulp van toLocaleDateString
in JavaScript, bijvoorbeeld, myDate.toLocaleDateString (ko-KR)
retourneert een opgemaakte datum in het formaat dat door Koreaanssprekende autochtonen in Korea wordt gebruikt.
Zomertijd (Zomertijd)
In bepaalde landen wordt de zomertijd gerealiseerd door de klokken in de zomer met een uur door te sturen om gebruik te maken van het extra zonlicht dat beschikbaar is. Houd rekening met DST om bij te blijven met de lokale tijden in uw services.
Geen twee-cijferjaar
Pas tijdens het aanpassen van de datum en tijd voor lokalisatie het tweecijferige formaat voor het jaar op geen enkel moment aan. We zijn al in de 21e eeuw. Het gebruik van jaren zoals 64
, 99
enz. zal in de toekomst lastig zijn. Als u al een tweecijferig jaarsysteem heeft, overweeg dan om het te veranderen.
Schrikkeljaar en andere kalenders
Laten we dit bericht beëindigen met een aantal verschillende dingen om te onthouden tijdens het omgaan met datums. Als u geen bibliotheek of API gebruikt voor datums en er graag zelf mee wilt werken (wat wel zo is) niet niettemin aanbevolen), vergeet niet om 29 februari in de input voor de schrikkeljaren te laten zien.
Ook is het vermeldenswaard dat de Gregoriaanse kalender is niet de enige vorm van beschikbare en gebruikte kalender over de hele wereld. Er zijn maar weinig regionale kalenders die de lokale bevolking volgt, vooral als het gaat om feestelijkheden.
Referenties
- International Telecommunications Union: Status of Coordinated Universal Time (UTC) -studie in ITU-R
- ISO: ISO 8601 - Datum- en tijdnotatie
- Wikipedia: Coordinated Universal Time
- Wikipedia: zomertijd
- Wikipedia: Greenwich Mean Time
- W3C Opmerking: datum- en tijdnotatie
- W3C-tips: gebruik internationale datumnotatie (ISO)