Kotisivu » Coding » Lopullinen tapa muotoilla kansainvälisten sivustojen päivämääriä

    Lopullinen tapa muotoilla kansainvälisten sivustojen päivämääriä

    Päivämäärämuodot vaihtelevat alueen ja kielen mukaan, joten on aina hyödyllistä, jos löydämme tavan näyttää päivämäärät käyttäjille omalla kielellään ja alueellaan.

    Joulukuussa 2012 ECMA julkaisi JavaScriptin kansainvälistymis API: n eritelmät. Kansainvälistymis API auttaa meitä näyttämään tiettyjä tietoja kielen ja leikkauksen määrittelyn mukaan. Sitä voidaan käyttää tunnistaa valuutat, aikavyöhykkeet ja enemmän.

    Tässä viestissä tarkastelemme päivämäärän muotoilu käyttää tätä API: ta.

    Tunne käyttäjän sijainti

    Jos haluat näyttää päivämäärän käyttäjän ensisijaisen sijainnin mukaan, meidän on ensin tiedettävä, mikä on suosituin alue. Tällä hetkellä foolproof tapa tietää, että on kysyä käyttäjältä; anna käyttäjien valita haluamasi kieli- ja alueasetukset verkkosivulla.

    Mutta jos se ei ole vaihtoehto, voit tulkita sitä Accept-Language pyydä otsikkoa tai lue navigator.language(Chrome ja Firefox) tai navigator.browserLanguage(IE-arvot).

    Huomaa, että kaikki näistä vaihtoehdoista eivät palauta selaimen käyttöliittymän ensisijaista kieltä.

     var language_tag = window.navigator.browserLanguage || window.navigator.language || "Fi"; // palauttaa kielitunnisteet kuten 'en-GB' 

    Tarkista kansainvälistymisen API

    Jos haluat tietää, tukeeko selain kansainvälistymisen sovellusliittymää vai ei, voimme tarkistaa globaalin objektin läsnäolon intl.

     jos (window.hasOwnPropertyâ €‹("Intl") & & tyyppi Intl === "objekti") // Kansainvälistymis API on läsnä, käytämme sitä 

    intl esine

    intl on kansainvälinen sovellusliittymän käyttäminen. Siinä on kolme ominaisuutta, jotka ovat rakentajia kolmelle esineelle kollaattorin, NumberFormat, ja DateTimeFormat.

    Objekti, jota käytämme, on DateTimeFormat joka auttaa meitä asettamaan päivämäärän ajan eri kielille.

    DateTimeFormat esine

    DateTimeFormat rakentaja ottaa kaksi valinnaista argumenttia;

    • locales - merkkijono tai joukko merkkijonoja, jotka edustavat esimerkiksi kielitunnisteita; “de” saksan kielelle, “en-GB” englantia käytetään Yhdistyneessä kuningaskunnassa. Jos kielimerkkiä ei mainita, oletussijainti on runtime.
    • vaihtoehtoja - objekti, jonka ominaisuuksia käytetään muotoilijan mukauttamiseen. Sillä on seuraavat ominaisuudet:
    omaisuus Kuvaus Mahdolliset arvot
    päivä Kuun päivä “2-numeroinen”, “numeerinen”
    aikakausi Era päivämäärä kuuluu, esim. BC “kapea”, “lyhyt”, “pitkä”
    formatMatcher Alustaa, jota käytetään formaatin sovittamiseen “perustiedot”, “parhaiten sopiva”[oletusarvo]
    tunnin Edustaa aikaa “2-numeroinen”, “numeerinen”
    hour12 Ilmaisee 12 tunnin muodon (totta) tai 24 tunnin muodossa (väärä) totta, väärä
    localeMatcher Lokalisointia varten käytetty algoritmi “Katso ylös”, “parhaiten sopiva”[oletusarvo]
    minuutti Pöytäkirja aikaa “2-numeroinen”, “numeerinen”
    kuukausi Kuukausi vuodessa “2-numeroinen”, “numeerinen”, “kapea”, “lyhyt”, “pitkä”
    toinen Sekuntia ajankohtana “2-numeroinen”, “numeerinen”
    aikavyöhyke Aikavyöhyke sovelletaan “UTC”, oletuksena on runtime time zone
    timeZoneName Päivämäärän aikavyöhyke “lyhyt”, “pitkä”
    arkipäivä Päivä viikolla “kapea”, “lyhyt”, “pitkä”
    vuosi Päivämäärä “2-numeroinen”, “numeerinen”

    Esimerkki:

     var formatter = uusi Intl.DateTimeFormat ('en-GB'); / * palauttaa muotoilijan, joka voi muotoilla päivämäärän englanniksi English date format * / 
     var options = weekday: 'short'; var formatter = uusi Intl.DateTimeFormat ('en-GB', asetukset); / * palauttaa muotoilijan, joka voi muotoilla päivämäärän UK: n englanninkielisessä päivämäärämuodossa * sekä viikonpäivän lyhyellä merkinnällä kuten "Thu" torstaina * / 

    muoto toimia

    Esimerkkinä DateTimeFormat objektilla on ominaisuusosoite (getter) muoto joka palauttaa funktion, joka muodostaa a Treffi perustuu locales ja vaihtoehtoja löydetty DateTimeFormat ilmentymä.

    Toiminto vie a Treffi objekti tai määrittelemätön valinnaisena argumenttina ja palauttaa a jono haluamasi päivämäärän muodossa.

    Huomautus: Jos väite on myös määrittelemätön tai ei toimiteta, sitten se palauttaa arvon Date.now () haluamasi päivämäärän muodossa.

    Tässä on syntaksi:

     uusi Intl.DateTimeFormat () .formaatti () // palauttaa nykyisen päivämäärän runtime date -muodossa 

    Anna nyt koodata yksinkertainen päivämäärän muotoilu.

    Muuta kieli ja näe tulos.

    Nyt on aika tarkastella vaihtoehtoja.

    toLocaleDateString menetelmä

    Sen sijaan, että käytät edellä mainituissa esimerkeissä esitettyä muotoilijaa, voit myös käyttää Date.prototype.toLocaleString samalla tavalla locales ja vaihtoehtoja väitteet, ne ovat samankaltaisia, mutta on suositeltavaa käyttää DateTimeFormat käsitellään liian monta päivämäärää sovelluksessa.

     var mydate = new Päiväys ('2015/04/22'); var options = arkipäivä: "lyhyt", vuosi: "numeerinen", kuukausi: "pitkä", päivä: "numeerinen"; console.log (mydate.toLocaleDateString ( 'fi-FI', optiot)); // palaa "ke, 22.4.2015" 

    Testaa, onko locales tuetaan

    Voit tarkistaa tuetun locales, voimme käyttää menetelmää supportedLocalesOf of DateTimeFormat esine. Se palauttaa joukon kaikkia tukevia paikkoja tai tyhjän taulukon, jos mitään paikallista ei tueta.

    Testattavaksi lisätkäämme nukke “blaa” luettelossa tarkastettavien paikkojen luettelosta.

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

    Selaimen tuki

    Huhtikuun 2015 lopussa suuret selaimet tukevat kansainvälistymis API: ta.

    Viitteet

    • ECMA International: ECMAScriptin kansainvälistymisen API-määrittely
    • IANA: Language Subtag -rekisteri
    • Norbertin kulma: ECMAScriptin kansainvälistymis API