JavaScript datums tūlīt - kā iegūt pašreizējo datumu

Daudzām jūsu izveidotajām lietojumprogrammām būs sava veida datuma komponents, neatkarīgi no tā, vai tas ir resursa izveides datums vai darbības laika zīmogs.

Datuma un laika zīmoga formatēšana var būt nogurdinoša. Šajā ceļvedī jūs uzzināsiet, kā iegūt pašreizējo datumu dažādos formātos JavaScript.

JavaScript datuma objekts

JavaScript ir iebūvēts Dateobjekts, kas saglabā datumu un laiku un nodrošina metodes to apstrādei.

Lai izveidotu jaunu Dateobjekta gadījumu, izmantojiet newatslēgvārdu:

const date = new Date();

DateObjekts satur Number, kas pārstāv milisekundēm pagājis kopš Epoch, kas 1970. gada 1. janvārim.

Jūs varat nodot datuma virkni Datekonstruktoram, lai izveidotu objektu norādītajam datumam:

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

Lai iegūtu kārtējo gadu, izmantojiet objekta getFullYear()instances metodi Date. getFullYear()Metode atgriež gadu norādīto datumā Datekonstruktors:

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

Tāpat ir metodes, kā iegūt pašreizējo mēneša dienu un kārtējo mēnesi:

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

getDate()Metode atgriež pašreizējo mēneša dienu (1-31).

getMonth()Metode atgriež mēnesi noteiktā datumā. Par getMonth()metodi jāatzīmē, ka tā atgriež 0 indeksētās vērtības (0-11), kur 0 ir janvārim un 11 decembrim. Tāpēc 1 pievienošana mēneša vērtības normalizēšanai.

Datums tūlīt

now()ir Dateobjekta statiska metode . Tas atgriež vērtību milisekundēs, kas atspoguļo laiku, kas pagājis kopš laikmeta. Jūs varat nodot milisekundēs, kas no now()metodes atgriezušās Datekonstruktorā, lai izveidotu jaunu Dateobjektu:

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

Datuma formatēšana

Izmantojot objekta metodes, datumu var formatēt vairākos formātos (GMT, ISO un tā tālāk) Date.

toDateString()Metode atgriež datumu cilvēkam lasāmā formātā:

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

toISOString()Metode atgriež datumu, kas seko ISO 8601 Extended Formāts:

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

toUTCString()Metode atgriež datumu UTC laika joslu formātā:

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

toLocaleDateString()Metode atgriež datumu Mikrorajonā jutīga formātā:

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

Pilnīgu Datemetožu atsauci varat atrast MDN dokumentācijā.

Pielāgota datuma formatēšanas funkcija

Jūsu pieteikumam, izņemot iepriekšminētajā sadaļā minētos formātus, var būt atšķirīgs datu formāts. Tas varētu būt yy/dd/mmvai yyyy-dd-mmformātā, vai kaut kas līdzīgs.

Lai risinātu šo problēmu, labāk būtu izveidot atkārtoti lietojamu funkciju, lai to varētu izmantot vairākos projektos.

Tātad šajā sadaļā izveidosim utilītas funkciju, kas atgriezīs datumu formātā, kas norādīts funkcijas argumentā:

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

Jums jāaizstāj virknes "mm", "dd", "yy" ar attiecīgajām mēneša, dienas un gada vērtībām no argumentā nodotās formāta virknes.

Lai to izdarītu, varat izmantot replace()metodi, kas parādīta zemāk:

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

Bet tas novedīs pie daudzu metožu ķēdes un apgrūtinās tās uzturēšanu, mēģinot padarīt funkciju elastīgāku:

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

Ķēdes metožu vietā varat izmantot regulāro izteiksmi replace().

Vispirms izveidojiet objektu, kas attēlos apakšvirsmas atslēgas vērtību pāri un tā atbilstošo vērtību:

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

Pēc tam izmantojiet regulāro izteiksmi, lai sakārtotu un aizstātu virknes:

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

Pilnīga funkcija izskatās šādi:

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]) }

Funkcijā varat pievienot arī iespēju formatēt laika zīmogus.

Secinājums

Es ceru, ka tagad jūs labāk izprotat Dateobjektu JavaScript. Lai apstrādātu datumus, lietojumprogrammā varat izmantot arī citas trešo pušu bibliotēkas, piemēram, datesjun moment.

Līdz nākamajai reizei esiet drošs un turpiniet grūstīties.