Koduleht » Kodeerimine » Lõplik viis rahvusvaheliste lehtede kuupäevade vorminguks

    Lõplik viis rahvusvaheliste lehtede kuupäevade vorminguks

    Kuupäevavormingud on piirkonniti ja keelelt erinevad, seega on alati kasulik, kui me leiame viisi, kuidas kuupäevadele nende keelt ja piirkonda kuvada..

    2012. aasta detsembris avaldas ECMA JavaScripti rahvusvahelistamise API spetsifikatsioonid. Internatsionaliseerimise API aitab meil kuvada teatud andmeid vastavalt keele ja lõiguse spetsifikatsioonile. Seda saab kasutada identifitseerida valuutad, ajavööndid ja veel.

    Selles postituses vaatleme kuupäeva vorming kasutades seda API-d.

    Tea kasutaja asukoha

    Kuupäeva näitamiseks kasutaja eelistatud asukoha järgi peame kõigepealt teadma, mida eelistatud asukoht on. Praegu on lollikindel viis teada, et küsida kasutajalt; lubage kasutajatel valida oma eelistatud keele ja piirkonna seaded veebilehel.

    Aga kui see ei ole valik, saate seda tõlgendada Kinnita keel päringu päis või lugege navigator.language(Chrome'i ja Firefoxi puhul) või navigator.browserLanguage(IE puhul) väärtused.

    Palun teadke, et kõik need suvandid ei tagasta brauseri kasutajaliidese eelistatud keelt.

     var language_tag = window.navigator.browserLanguage || window.navigator.language || "en"; // tagastab keele silte nagu 'en-GB' 

    Kontrollige rahvusvahelistumise API-d

    Et teada saada, kas brauser toetab rahvusvahelistamise API-d või mitte, saame kontrollida globaalse objekti olemasolu Intl.

     kui (window.hasOwnPropertyâ €)‹("Intl") & & tüübi Intl === "objekt") // Rahvusvahelisuse API on olemas, kasutage seda 

    The Intl objekti

    Intl on rahvusvaheline rakendusliidese kasutamise rahvusvaheline objekt. Sellel on kolm omadust, mis on kolme objekti ehitajad, nimelt Koguja, NumberFormat, ja DateTimeFormat.

    Objekt, mida me kasutame, on DateTimeFormat mis aitab meil vormistada kuupäeva aega eri keeltes.

    The DateTimeFormat objekti

    The DateTimeFormat konstruktor võtab kaks valikulist argumenti;

    • lokaliseerib - stringi või rea stringi, mis esindavad näiteks keele silte; “de” saksa keeles, “et-GB” inglise keele puhul, mida kasutatakse Ühendkuningriigis. Kui keele märgendit ei mainita, on vaikimisi kasutatav alamjooks runtime.
    • võimalusi - objekt, mille omadusi kasutatakse vormindaja kohandamiseks. Sellel on järgmised omadused:
    Kinnisvara Kirjeldus Võimalikud väärtused
    päev Kuupäev “2-kohaline”, “numbriline”
    ajastu Era kuupäev langeb, nt “kitsas”, “lühike”, “pikk”
    formatMatcher Vormingu sobitamiseks kasutatav algoritm “põhiline”, “parim sobivus”[Vaikimisi]
    tund Esindab tundi “2-kohaline”, “numbriline”
    tund12 Näitab 12-tunnilist vormingut (tõsi) või 24-tunnise vormingu (vale) tõsi, vale
    localeMatcher Lokaalide sobitamiseks kasutatav algoritm “Vaata üles”, “parim sobivus”[Vaikimisi]
    minut Minutit “2-kohaline”, “numbriline”
    kuus Kuu aastas “2-kohaline”, “numbriline”, “kitsas”, “lühike”, “pikk”
    teine Sekundid aja jooksul “2-kohaline”, “numbriline”
    ajavöönd Kohaldatav ajavöönd “UTC”, default on runtime time zone
    timeZoneName Kuupäeva ajavöönd “lühike”, “pikk”
    nädalapäev Päev nädalas “kitsas”, “lühike”, “pikk”
    aasta Kuupäeva kuupäev “2-kohaline”, “numbriline”

    Näide:

     var formatter = uus Intl.DateTimeFormat ('en-GB'); / * tagastab vormindaja, mis võib vormindada kuupäeva Suurbritannias. 
     var options = weekday: 'short'; var formatter = uus Intl.DateTimeFormat ('en-GB', valikud); / * tagastab vormindaja, mis võib vormindada kuupäeva inglise keeles inglise keeles vormingus * koos nädalapäevaga, näiteks "Thu" neljapäevaks * / 

    The vormingus funktsiooni

    . \ T DateTimeFormat Objektil on nimega kinnisvaraobjekt (getter) vormingus mis tagastab funktsiooni, mis vormindab a Kuupäev põhinedes lokaliseerib ja võimalusi leitud DateTimeFormat näiteks.

    Funktsioon võtab a Kuupäev objekti või määratlemata valikulise argumendina ja tagastab a string soovitud kuupäevavormingus.

    Märge: Kui argument on ka määratlemata või mitte, siis tagastab selle väärtuse Date.now () soovitud kuupäevavormingus.

    Siin on süntaks:

     uus Intl.DateTimeFormat () .formaat () // tagastab praeguse kuupäeva käitusaja kuupäeva vormingus 

    Ja nüüd andke meile lihtsa kuupäeva vorming.

    Muutkem keelt ja vaadake väljundit.

    Nüüd on aeg uurida võimalusi.

    The toLocaleDateString meetod

    Ülaltoodud näidetes näidatud vormindaja asemel võite kasutada ka Date.prototype.toLocaleString samal viisil lokaliseerib ja võimalusi argumendid, on need sarnased, kuid on soovitatav kasutada DateTimeFormat objekt, kui tegelete oma taotluses liiga paljude kuupäevadega.

     var mydate = new Date ('2015/04/22'); var options = nädalapäev: "lühike", aasta: "numbriline", kuu: "pikk", päev: "numbriline"; console.log (mydate.toLocaleDateString ('en-GB', valikud)); // tagastab "ke, 22. aprill 2015" 

    Testige, kas lokaliseerib toetatakse

    Toetatud lokaliseerib, me saame seda meetodit kasutada toetatudLocalesOf of DateTimeFormat objekti. See tagastab kõik toetavad asukohad või tühja massiivi, kui ükski asukoht pole toetatud.

    Testimiseks lisage mehe lokaat “blah” kontrollitavate kohtade loendis.

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

    Brauseri tugi

    2015. aasta aprilli lõpus toetavad suuremad brauserid rahvusvahelistumise API-d.

    Viited

    • ECMA Rahvusvaheline: ECMAScript Internationalization API spetsifikatsioon
    • IANA: Language Subtag Registry
    • Norbert's Corner: ECMAScript'i rahvusvahelistumise API