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