JavaScripti kuupäev kohe - kuidas saada JavaScripti praegune kuupäev

Paljudel teie loodud rakendustel on mingisugune kuupäeva komponent, olgu see siis ressursi loomise kuupäev või tegevuse ajatempel.

Kuupäeva ja ajatempli vormindamine võib olla kurnav. Selles juhendis saate teada, kuidas praegust kuupäeva mitmesugustes vormingutes JavaScripti saada.

JavaScripti kuupäevaobjekt

JavaScriptil on sisseehitatud Dateobjekt, mis salvestab kuupäeva ja kellaaja ning pakub nende käsitlemise meetodeid.

Objekti uue eksemplari loomiseks Datekasutage newmärksõna:

const date = new Date();

DateObjekti sisaldab Numbermis esindab millisekundit möödunud epohhist, mis on 1. jaanuar 1970.

Konkreetse kuupäeva Dateobjekti loomiseks võite konstruktorile edastada kuupäeva stringi :

const date = new Date('Jul 12 2011');

Praeguse aasta saamiseks kasutage objekti getFullYear()eksemplari meetodit Date. getFullYear()Meetod tagastab aasta täpsustatud kuupäeva Dateehitaja:

const currentYear = date.getFullYear(); console.log(currentYear); //2020

Samamoodi on olemas jooksva kuu ja jooksva kuu saamiseks meetodid:

const today = date.getDate(); const currentMonth = date.getMonth() + 1; 

getDate()Meetod tagastab praeguse päevani (1-31).

getMonth()Meetod tagastab kuu kindlaksmääratud kuupäeval. getMonth()Meetodi kohta tuleb märkida, et see tagastab 0-indekseeritud väärtused (0–11), kus 0 on jaanuar ja 11. detsember. Seetõttu lisatakse kuu väärtuse normaliseerimiseks üks.

Kuupäev kohe

now()on Dateobjekti staatiline meetod . See tagastab väärtuse millisekundites, mis tähistab ajastust möödunud aega. Uue objekti esilekutsumiseks võite sisestada now()meetodist tagastatud millisekundid Datekonstruktorisse Date:

const timeElapsed = Date.now(); const today = new Date(timeElapsed);

Kuupäeva vormindamine

DateObjekti meetodite abil saate kuupäeva vormindada mitmeks vorminguks (GMT, ISO ja nii edasi) .

toDateString()Meetod tagastab kuupäeva inimesele loetaval kujul:

today.toDateString(); // "Sun Jun 14 2020"

toISOString()Meetod tagastab kuupäeva, mis järgib ISO 8601 laiendatud Formaat:

today.toISOString(); // "2020-06-13T18:30:00.000Z"

toUTCString()Meetod tagastab kuupäeva UTC ajatsooni formaat:

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"

toLocaleDateString()Meetod tagastab kuupäeva paikkonna tundlikud formaat:

today.toLocaleDateString(); // "6/14/2020"

DateMeetodite täieliku viite leiate MDN-i dokumentatsioonist.

Funktsioon Kohandatud kuupäeva vormindamine

Lisaks ülaltoodud jaotises mainitud vormingutele võib teie rakendusel olla andmete erinev vorming. See võib olla yy/dd/mmvõi yyyy-dd-mmformaadis, või midagi sarnast.

Selle probleemi lahendamiseks oleks parem luua korduvkasutatav funktsioon, et seda saaks kasutada mitmes projektis.

Nii et loome selles jaotises utiliidi funktsiooni, mis tagastab kuupäeva funktsiooni argumendis määratud vormingus:

const today = new Date(); function formatDate(date, format) { // } formatDate(today, 'mm/dd/yy');

Stringid "mm", "dd", "yy" peate asendama argumendis edastatud vormingustringiga vastavate kuu, päeva ja aasta väärtustega.

Selleks võite kasutada replace()allpool näidatud meetodit:

format.replace('mm', date.getMonth() + 1);

Kuid see toob kaasa palju meetodite aheldamist ja muudab selle hooldamise keeruliseks, kui proovite funktsiooni paindlikumaks muuta:

format.replace('mm', date.getMonth() + 1) .replace('yy', date.getFullYear()) .replace('dd', date.getDate());

Aheldamismeetodite asemel saate replace()meetodiga kasutada regulaaravaldist .

Kõigepealt looge objekt, mis esindab alamstringi võtmeväärtuste paari ja selle vastavat väärtust:

const formatMap = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() };

Järgmisena kasutage stringide sobitamiseks ja asendamiseks regulaaravaldist:

formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]);

Kogu funktsioon näeb välja selline:

function formatDate(date, format) { const map = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() } return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]) }

Funktsiooni saate lisada ka ajatemplite vormindamise võimaluse.

Järeldus

Loodetavasti saate nüüd DateJavaScripti objektist paremini aru . Oma rakenduses saate kuupäevade käsitsemiseks kasutada ka muid kolmandate osapoolte raamatukogusid, näiteks datesjja moment.

Järgmise korrani olge turvaline ja jätkake sagimist.