Rādīt datumu un laiku Kā to darīt pareizi
Mēs katru dienu sastopamies ar tiem datumiem un laiku. Kad runa ir par tīmekli, varat tos apskatīt mobilajās lietotnēs, e-pastos, ziņojumapmaiņas lietotnēs un daudzās citās vietās. Tomēr, neskatoties uz dienu un laiku, katru dienu un visur, mums vēl ir jāpieņem universāls formāts.
Piemēram, ja es rakstu 10/05/2015, jūs nekad nevarat būt pārliecināts, vai šis "10" ir mēnesis vai datums, ja es jums nesaku, kur es esmu. Dažreiz tiek mainīts formāts, citreiz - valoda.
Ir svarīgi, ka tīmekļa izstrādātājiem mēs pievēršam uzmanību datumam un laikam, ar kuru mēs nodarbojamies mūsu projektos, lai mēs varētu to darīt apmierināt tos ar dažādiem ģeogrāfiskiem iedzīvotājiem bez jebkādiem konfliktiem. Šajā ziņojumā mēs apspriedīsim ko izvairīties un ko pieņemt kad runa ir par datuma laika rādīšanu.
Globalizācija
Pieņemsim, ka mēs nevēlamies pārvērst un parādīt dažādus datuma un laika formātus dažādiem skatītājiem visā pasaulē, ko mēs varam darīt? Mēs izvēlamies vienu globālu formātu un pielīmējam to. Lūk, kur daži standarti tiek spēlēti. Pirms tam nonākam, man jāinformē, ka W3C iesaka izmantot ISO 8601 datuma formātu ar UTC laika joslu.
ISO 8601
ISO 8601 apraksta starptautiski pieņemtu veidu, kā attēlot datumus un laikus, izmantojot numurus.
Un pilnā datuma formāts ir; GGGG-MM-DD
, piemēram: 2015-07-28
YYYY = 4 ciparu gads
MM = 2 ciparu mēnesis (01 = janvāris uc)
DD = 2 ciparu diena (no 01 līdz 31)
Par pilnu datuma laiku;GGGG-MM-DDThh: mm: ss.s
, piemēram: 2015-07-28T21: 15: 18.45
T = Lai atdalītu datumu un laiku saskaņā ar ISO 8601
mm = 2 ciparu minūte (no 00 līdz 59)
ss = 2 ciparu sekunde (00 līdz 59)
s = otrā, 1 vai vairāk ciparu decimālā daļa
Lūdzu, ņemiet vērā, ka, tā kā iepriekš minētajā piemērā nav minēta laika josla, ir jāpieņem, ka laiks ir vietējā laika joslā. Ja esat nolēmis izmantot UTC laika joslu, vienkārši pievienojiet Z vērtību, lai apzīmētu UTC
Piemēram: 2015-07-28T21: 15: 18.45Z
Bet, ja vēlaties parādīt vietējo laiku, varat pievienot laika joslas nobīde UTC uz formātu vērtību +hh: mm
vai -hh: mm
kā nepieciešams.
Piemēram: pieņemsim 2015-07-28T21: 15: 18.45
ir EST (Austrumu standarta laiks) laika joslā, kas atpaliek no 5 stundām aiz UTC laika joslas.
Lai to attēlotu ar UTC kompensāciju, mēs rakstām 2015-07-28T21: 15: 18.45-05: 00
kas atbilst UTC laikam 2015-07-29T02: 15: 18.45Z
.
Atkal Z ir pievienots, lai parādītu, ka parādītais datuma laiks ir UTC laikā.
UTC pret GMT
Viņi abi ir vienādi, bet atšķirīgi. Tagad jūs, iespējams, vismaz reizi esat saskārušies ar GMT; iestatot datuma laiku savā mobilajā tālrunī vai datorā. Tā ir vispopulārākā visā pasaulē atzīta laika josla, jo tā ir pastāvējusi ilgāk nekā UTC.
Lai gan daži var teikt, ka abi abi ir vienādi, bet tie nav, UTC ir GMT pēctecis un to uztur Starptautiskā telekomunikāciju savienība. Ieteicams atsaukties uz laiku, pamatojoties uz UTC, nevis GMT.
Izmantojiet mēnešu nosaukumu
ISO standarts izmantoja tikai numurus datuma attēlojumā, lai izvairītos no jebkādiem valodas konfliktiem. Bet, ja jūsu tīmekļa lietojumprogrammas saturs būs angļu valodā, tad jāapsver mēneša rakstīšana angļu valodā, nevis skaitļos.
Tā vietā 2015-07-28
, 2015. gada 28. jūlijs
daudziem ir vieglāk saprotams un mazāk mulsinošs.
Lokalizācija
Ir reizes, kad mēs vēlamies būt ļoti specifiski ar mūsu pakalpojumiem un vēlamies pārstāvēt datumu un laiku vietējos laika joslos un valodās. Web izstrādātājiem ir pieejamas daudzas bibliotēkas un API, lai izmantotu un parādītu datumus un laikus kā piekļuves reģionam.
Pārlūka noklusējuma lokalizāciju var iegūt, interpretējot Pieņemt valodu
vai pieprasījuma navigator.language vai navigator.browserLanguage
JavaScript objekts, bet labākā metode ir ļaujiet lietotājam izvēlēties jūsu lokalizāciju tā kā iepriekšējie veidi nav ļoti uzticami.
Kad jums ir lokalizācija, datuma laiku var formatēt atbilstoši tam, piemēram, izmantojot Internacionalizācijas API, varat formatēt datumu, izmantojot toLocaleDateString
piemēram, JavaScript, myDate.toLocaleDateString ('ko-KR')
atgriezīsies formatēts datums formātā, ko Korejā izmanto korejiešu valodā runājošie vietējie iedzīvotāji.
Vasaras laiks (DST)
Dažās valstīs vasaras laiks tiek veikts, nosūtot pulksteņus stundas laikā, lai izmantotu papildu saules gaismu. Esiet informēti par DST, lai neatpaliktu no vietējā laika jūsu pakalpojumos.
Nav divu ciparu gada
Lai pielāgotu lokalizācijas datumu un laiku, neizmantojiet divu ciparu formātu gadā. Mēs jau esam 21. gadsimtā. Līdzīgi kā gadi 64
, 99
utt. būs traucējošs nākotnē. Ja jums jau ir divu ciparu gadu sistēma, apsveriet iespēju to mainīt.
Leap gads un citi kalendāri
Ļaujiet mums beigt šo amatu ar dažām dažādām lietām, kas jāatceras, risinot datumus. Ja jūs neizmantojat nevienu bibliotēku vai API datumiem un vēlaties rīkoties ar viņiem paši (kas ir ne tomēr ir ieteicams), neaizmirstiet parādīt, ka 29. februārī ir pagājušajā gadā.
Tāpat ir vērts atzīmēt, ka Gregora kalendārs nav vienīgais pieejamā un izmantojamā kalendāra veids visā pasaulē. Vietējie iedzīvotāji seko dažiem reģionālajiem kalendāriem, it īpaši, ja runa ir par svētkiem.
Atsauces
- Starptautiskā telekomunikāciju savienība: koordinēta universālā laika (UTC) pētījums ITU-R
- ISO: ISO 8601 - Datuma un laika formāts
- Vikipēdija: koordinētais pasaules laiks
- Wikipedia: vasaras laiks
- Vikipēdija: Griničas laiks
- W3C Piezīme: Datuma un laika formāti
- W3C padomi: izmantojiet starptautisko datuma formātu (ISO)