Domača » Kodiranje » Dokončen način oblikovanja datumov za mednarodne strani

    Dokončen način oblikovanja datumov za mednarodne strani

    Oblike datumov se razlikujejo glede na regijo in jezik, zato je vedno koristno, če lahko najdemo način za prikaz datumov za uporabnike, ki so specifični za njihov jezik in regijo..

    Decembra 2012 je ECMA izdala specifikacije API-ja za internacionalizacijo za JavaScript. API internacionalizacije nam pomaga prikazati določene podatke glede na jezik in specifikacijo jezika. Lahko se uporablja za identifikacijo valut, časovnih pasov in več.

    V tem postu bomo iskali oblikovanje datuma z uporabo tega API-ja.

    Spoznajte uporabnikove nastavitve

    Če želite prikazati datum kot prednostni jezik po uporabniku, moramo najprej vedeti, kaj je ta želeni jezik. Trenutno zanesljiv način, da veste, da je vprašati uporabnika; uporabnikom omogočite izbiro želenih nastavitev jezika in regije na spletni strani.

    Toda, če to ni možnost, lahko interpretirate Sprejmi jezik zahtevate glavo ali preberete navigator.language(za Chrome in Firefox) ali navigator.browserLanguagevrednosti (za IE).

    Vedite, da vse te možnosti ne vrnejo želenega jezika uporabniškega vmesnika brskalnika.

     var language_tag = window.navigator.browserLanguage || window.navigator.language || "en"; // vrne jezikovne oznake, kot je »en-GB« 

    Preverite API za internacionalizacijo

    Če želimo vedeti, ali brskalnik podpira internacionalizacijski API ali ne, lahko preverjamo prisotnost globalnega objekta Intl.

     če (window.hasOwnProperty‹("Intl") && typeof Intl === "predmet") // Prisoten je API internacionalizacije, uporabimo to 

    The Intl predmet

    Intl je globalni objekt za uporabo API-ja za internacionalizacijo. Ima tri lastnosti, ki so konstruktorji za tri objekte in sicer Zbiralnik, NumberFormat, in DateTimeFormat.

    Predmet, ki ga bomo uporabljali, je DateTimeFormat ki nam bodo pomagali pri formatiranju datuma kot po različnih jezikih.

    The DateTimeFormat predmet

    The DateTimeFormat konstruktor vzame dva neobvezna argumenta;

    • lokacij - niz ali niz nizov, ki na primer predstavljajo jezikovne oznake; “de” za nemški jezik, “en-GB” za angleščino, ki se uporablja v Združenem kraljestvu. Če jezikovna oznaka ni omenjena, bo privzeta jezikovna nastavitev tista, ki je v času izvajanja.
    • opcije - objekt, katerega lastnosti se uporabljajo za prilagajanje oblikovalnika. Ima naslednje lastnosti:
    Lastnina Opis Možne vrednosti
    dan Dan v mesecu “2-mestno”, “numerično”
    obdobje Era datum pade v, Ex: BC “ozek”, “kratek”, “dolga”
    formatMatcher Algoritem, uporabljen za ujemanje formatov “osnovno”, “najbolj ustrezajo”[Privzeto]
    uro Predstavlja Ure v času “2-mestno”, “numerično”
    ura12 Označuje 12-urni format (prav) ali 24-urni format (false) prav, false
    localeMatcher Algoritem, ki se uporablja za ujemanje področnih nastavitev “Poglej gor”, “najbolj ustrezajo”[Privzeto]
    minute Minute časa “2-mestno”, “numerično”
    mesec Mesec v letu “2-mestno”, “numerično”, “ozek”, “kratek”, “dolga”
    drugič Sekunde v času “2-mestno”, “numerično”
    časovni pas Časovni pas, ki ga želite uporabiti “UTC”, privzeto je časovni pas izvajalnega okolja
    timeZoneName Časovni pas datuma “kratek”, “dolga”
    dan v tednu Dan v tednu “ozek”, “kratek”, “dolga”
    leto Leto datuma “2-mestno”, “numerično”

    Primer:

     var formatter = novo Intl.DateTimeFormat ('en-GB'); / * vrne oblikovalnik, ki lahko oblikuje datum v angleškem formatu datuma * / 
     var options = dan v tednu: 'kratek'; var formatter = novo Intl.DateTimeFormat ('en-GB', možnosti); / * vrne oblikovalnik, ki lahko oblikuje datum v angleškem formatu datuma * skupaj z dnevom v kratkem zapisu, kot je "čet" za četrtek * / 

    The format funkcijo

    Primer primera DateTimeFormat Objekt ima klic lastnika (getter) format ki vrne funkcijo, ki formatira a Datum temelji na lokacij in opcije najdete v DateTimeFormat na primer.

    Funkcija sprejme a Datum predmet ali nedoločeno kot neobvezni argument in vrne a niz v želeni obliki zapisa datuma.

    Opomba: Če je argument tudi nedoločeno ali ne, potem vrne vrednost Date.now () v želeni obliki zapisa datuma.

    Tukaj je sintaksa:

     new Intl.DateTimeFormat (). format () // vrne trenutni datum v obliki datuma izvajanja 

    Zdaj pa kodirajte preprosto oblikovanje datuma.

    Spremenimo jezik in vidimo rezultate.

    Zdaj je čas, da preučimo možnosti.

    The doLocaleDateString metodo

    Namesto uporabe oblikovalnika, kot je prikazano v zgornjih primerih, lahko uporabite tudi Date.prototype.toLocaleString na enak način z lokacij in opcije argumenti, so podobni, vendar je priporočljivo uporabiti DateTimeFormat predmet, ko obravnavate preveč datumov v vaši aplikaciji.

     var mydate = new Datum ('2015/04/22'); var options = dan v tednu: "kratek", leto: "numeric", mesec: "dolg", dan: "numeric"; console.log (mydate.toLocaleDateString ('en-GB', možnosti)); // se vrne »Sre, 22. april 2015« 

    Preverite, ali je lokacij so podprte

    Preverjanje podpore lokacij, lahko uporabimo metodo supportedLocalesOf od DateTimeFormat predmet. Vrne matriko vseh podpornih krajev ali prazno polje, če ni podprt noben od krajevnih nastavitev.

    Za testiranje dodamo navidezni jezik “blah” na seznamu krajev, ki jih želite preveriti.

     console.log (Intl.DateTimeFormat.supportedLocalesOf (["zh", "blah", "fa-pes"])); // vrne polje ["zh", "fa-pes"] 

    Podpora za brskalnik

    Konec aprila 2015 glavni brskalniki podpirajo API za internacionalizacijo.

    Reference

    • ECMA Mednarodni: Specifikacija API-ja ECMAScript Internationalization
    • IANA: Register subtaga jezika
    • Norbertov kotiček: API za ECMAScript Internationalization