⊗jsPmTmAA 322 of 505 menu

Automatická korekce dat v JavaScriptu

JavaScript má velmi zajímavou a užitečnou vlastnost: pokud je při vytváření objektu Date zadán neplatný časový okamžik - automaticky se přepočte na platný. Podívejme se na příklad.

Jak víte, datum 35 ledna neexistuje. Maximální možný den ledna je 31. To znamená, že naše datum 35 ledna má 4 dny navíc. JavaScript v takovém případě jednoduše přidá těchto 4 dní navíc k následujícímu měsíci:

let date = new Date(2018, 0, 35); console.log(date); // výsledek bude 4. února

Lze zadat nejen přebytečné dny, ale i měsíce. Přitom je třeba mít na paměti, že měsíce začínají od nuly, a proto poslední platný měsíc je 11-tý. Pokud zadáte 12-tý měsíc, výsledkem bude leden následujícího roku:

let date = new Date(2018, 12, 1); // zadáme 12-tý měsíc console.log(date); // výsledek bude 1. ledna 2019

Popsaná korekce funguje i směrem dolů. Jak víte, nejmenším možným dnem měsíce je den s číslem 1. Proto, pokud zadáte den s číslem 0, výsledkem bude poslední den předchozího měsíce:

let date = new Date(2018, 1, 0); // zadáme nultý den console.log(date); // výsledek bude 31. ledna

Lze také zadávat záporné hodnoty dní a měsíců. Přitom je třeba pamatovat, že nejmenší den má číslo 1, a nejmenší měsíc - číslo 0. To znamená, že mínus první den spadá na 2 den od konce předchozího měsíce, a mínus první měsíc spadá přímo na poslední měsíc předchozího roku:

let date = new Date(2018, 1, -1); // zadáme -1 den console.log(date); // výsledek bude 30. ledna
let date = new Date(2018, -1, 1); // zadáme -1 měsíc console.log(date); // výsledek bude 1. prosince 2017

Vše výše uvedené analogicky funguje s hodinami, minutami a sekundami:

let date = new Date(2018, 0, 1, 24, 0, 0); // zadáme 24-tou hodinu console.log(date); // výsledek bude 2. ledna, 0 hodin
let date = new Date(2018, 0, 1, 25, 0, 0); // zadáme 25-tou hodinu console.log(date); // výsledek bude 2. ledna, 1 hodina

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 1, 35); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 15, 1); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 3, 31); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 1, 31); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 12, 33); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 33, 33); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 5, 0); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 0, 0); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, -12, -33); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 0, 1, 23, 0, 60); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 0, 1, 23, 60, 0); console.log(date); // jaké bude datum?

Určete, na jaké datum JavaScript převede následující časový okamžik:

let date = new Date(2018, 0, 1, 100, 100, 100); console.log(date); // jaké bude datum?
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout