Datum a čas v JavaScriptu

V tomto výukovém programu se na příkladu dozvíte o datu a čase v JavaScriptu.

V JavaScriptu je datum a čas reprezentován Dateobjektem. DateObjekt obsahuje informace o datu a času a také nabízí celou řadu možností.

Datum JavaScriptu definuje epochu EcmaScript, která představuje milisekundy od 1. ledna 1970 UTC . Toto datum a čas je stejné jako epocha UNIX (převládající základní hodnota pro hodnoty data a času zaznamenané počítačem).

Vytváření datových objektů

Existují čtyři způsoby, jak vytvořit objekt data.

  • nové datum ()
  • nové datum (milisekundy)
  • nové datum (řetězec data)
  • nový Datum (rok, měsíc, den, hodiny, minuty, sekundy, milisekundy)

nové datum ()

Datový objekt můžete vytvořit pomocí new Date()konstruktoru. Například,

 const timeNow = new Date(); console.log(timeNow); // shows current date and time

Výstup

 Po 6. července 2020 12:03:49 GMT + 0545 (nepálský čas)

Zde new Date()vytvoří nový objekt data s aktuálním datem a místním časem.

nové datum (milisekundy)

DateObjekt obsahuje číslo, které představuje milisekund od 1. ledna 1970 UTC .

new Date(milliseconds)vytvoří nový objekt data přidáním milisekund k nulovému času. Například,

 const time1 = new Date(0); // epoch time console.log(time1); // Thu Jan 01 1970 05:30:00 // 100000000000 milliseconds after the epoch time const time2 = new Date(100000000000) console.log(time2); // Sat Mar 03 1973 15:16:40

Poznámka : 1000 milisekund se rovná 1 sekundě.

nové datum (řetězec data)

new Date(date string) vytvoří nový objekt data z řetězce data.

V JavaScriptu existují obecně tři vstupní formáty data.

Formáty data ISO

Objekt data můžete vytvořit předáním formátů data ISO. Například,

 // ISO Date(International Standard) const date = new Date("2020-07-01"); // the result date will be according to UTC console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545

Můžete také předat pouze rok a měsíc nebo pouze rok. Například,

 const date = new Date("2020-07"); console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545 const date1 = new Date("2020"); console.log(date1); // Wed Jul 01 2020 05:45:00 GMT+0545

K datům ISO můžete také zadat konkrétní čas.

 const date = new Date("2020-07-01T12:00:00Z"); console.log(date); // Wed Jul 01 2020 17:45:00 GMT+0545

Poznámka : Datum a čas jsou odděleny s velkým písmenem T . UTC a času je definována kapitálu Z .

Krátký a dlouhý formát data

Další dva formáty data jsou formát krátkého data a dlouhý formát data .

 // short date format "MM/DD/YYYY" const date = new Date("03/25/2015"); console.log(date); // Wed Mar 25 2015 00:00:00 GMT+0545 // long date format "MMM DD YYYY" const date1 = new Date("Jul 1 2020"); console.log(date1); // Wed Jul 01 2020 00:00:00 GMT+0545 // month and day can be in any order const date2 = new Date("1 Jul 2020"); console.log(date2); // Wed Jul 01 2020 00:00:00 GMT+0545 // month can be full or abbreviated. Also month names are insensitive. // comma are ignored const date3 = new Date("July 1 2020"); console.log(date3); // Wed Jul 01 2020 00:00:00 GMT+0545 const date4 = new Date("JULY, 1, 2020"); console.log(date4); // Wed Jul 01 2020 00:00:00

nový Datum (rok, měsíc, den, hodiny, minuty, sekundy, milisekundy)

new Date(year, month,… )vytvoří nový objekt data předáním konkrétního data a času. Například,

 const time1 = new Date(2020, 1, 20, 4, 12, 11, 0); console.log(time1); // Thu Feb 20 2020 04:12:11

Předaný argument má konkrétní pořadí.

Pokud jsou předána čtyři čísla, představuje to rok, měsíc, den a hodiny. Například,

 const time1 = new Date(2020, 1, 20, 4); console.log(time1); // Thu Feb 20 2020 04:00:00

Podobně, pokud jsou předány dva argumenty, představuje to rok a měsíc. Například,

 const time1 = new Date(2020, 1); console.log(time1); // Sat Feb 01 2020 00:00:00

Poznámka : Pokud předáte pouze jeden argument, bude se s ním zacházet jako s milisekundami. Pro použití tohoto formátu data tedy musíte předat dva argumenty.

V JavaScriptu se měsíce počítají od 0 do 11 . Leden je 0 a prosinec je 11 .

Metody data JavaScript

V objektu JavaScript Date jsou k dispozici různé metody.

Metoda Popis
Nyní() Vrátí číselnou hodnotu odpovídající aktuálnímu času (počet milisekund uplynul od 1. ledna 1970 00:00:00 UTC)
getFullYear () Získá rok podle místního času
getMonth () Získá měsíc, od 0 do 11 podle místního času
getDate () Získá den v měsíci (1-31) podle místního času
getDay () Získá den v týdnu (0-6) podle místního času
getHours () Získá hodinu od 0 do 23 podle místního času
getMinutes Gets the minute from 0 to 59 according to local time
getUTCDate() Gets the day of the month (1-31) according to universal time
setFullYear() Sets the full year according to local time
setMonth() Sets the month according to local time
setDate() Sets the day of the month according to local time
setUTCDate() Sets the day of the month according to universal time

Example: Date Methods

 const timeInMilliseconds = Date.now(); console.log(timeInMilliseconds); // 1593765214488 const time = new Date; // get day of the month const date = time.getDate(); console.log(date); // 30 // get day of the week const year = time.getFullYear(); console.log(year); // 2020 const utcDate = time.getUTCDate(); console.log(utcDate); // 30 const event = new Date('Feb 19, 2020 23:15:30'); // set the date event.setDate(15); console.log(event.getDate()); // 15 // Only 28 days in February! event.setDate(35); console.log(event.getDate()); // 7

Formatting a Date

Unlike other programming languages, JavaScript does not provide a built-in function for formatting a date.

However, you can extract individual bits and use it like this.

 const currentDate = new Date(); const date = currentDate.getDate(); const month = currentDate.getMonth(); const year = currentDate.getFullYear(); // show in specific format let monthDateYear = (month+1) + '/' + date + '/' + year; console.log(monthDateYear); // 7/3/2020

Note: The above program gives inconsistent length as date and month have single-digit and double-digit.

AutoCorrection in Date Object

When you assign out of range values in the Date object, it auto-corrects itself. For example,

 const date = new Date(2008, 0, 33); // Jan does not have 33 days console.log(date);

Output

 Sat Feb 02 2008

Chcete-li se dozvědět více o datu a čase v JavaScriptu, navštivte Demystifikování data a času.

Zajímavé články...