Obecně existují 3 typy formátů vstupu data JavaScriptu:
"2015-03-25" (mezinárodní standard)
"03/25/2015"
"25. března 2015" nebo "25. března 2015"
Formát ISO se řídí přísným standardem v JavaScriptu.
Ostatní formáty nejsou tak dobře definované a může být specifické pro prohlížeč.
Nezávisle na vstupním formátu bude JavaScript (ve výchozím nastavení) vypisovat data v plném rozsahu formát textového řetězce:
ISO 8601 je mezinárodní standard pro reprezentaci dat a dat časy.
Syntaxe ISO 8601 (RRRR-MM-DD) je také preferovaným formátem data JavaScriptu:
const d = new Date("2015-03-25");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Vypočítané datum bude vztaženo k vašemu časovému pásmu.
V závislosti na vašem časovém pásmu výsledek výše se bude lišit od 24. března do 25. března.
Data ISO lze zapsat bez uvedení dne (RRRR-MM):
const d = new Date("2015-03");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Časová pásma se budou lišit podle výše uvedeného výsledku mezi 28. únorem a 1. březnem.
Data ISO lze zapsat bez měsíce a dne (YYYY):
const d = new Date("2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Časová pásma se budou lišit podle výše uvedeného výsledku mezi 31. prosincem 2014 a 1. lednem 2015.
ISO data lze zapsat s přidanými hodinami, minutami a sekundami (RRRR-MM-DDTHH:MM:SSZ):
const d = new Date("2015-03-25T12:00:00Z");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Separate date and time with a capital T.</p>
<p>Indicate UTC time with a capital Z.</p>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Datum a čas jsou odděleny velkým T.
Čas UTC je definován velkým písmenem Z.
Pokud chcete změnit čas vzhledem k UTC, odstraňte Z a přidejte +HH:MM nebo -HH:MM namísto:
const d = new Date("2015-03-25T12:00:00-06:30");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>
</body>
</html>
UTC (Universal Time Coordinated) je stejný jako GMT (Greenwich Mean Time).
Vynechání T nebo Z v řetězci data a času může v různých prohlížečích přinést různé výsledky.
Při nastavování data bez určení časového pásma použije JavaScript časové pásmo prohlížeče.
Při získávání data bez určení časového pásma je výsledkem převedeny na časové pásmo prohlížeče.
Jinými slovy: Pokud je datum/čas vytvořen v GMT (Greenwich Mean Time), datum/čas bude převeden na CDT (Central US Daylight Time), pokud uživatel projde ze středních USA.
Krátká data se zapisují pomocí syntaxe "MM/DD/RRRR" takto:
const d = new Date("03/25/2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
V některých prohlížečích mohou měsíce nebo dny bez úvodních nul způsobit chybu:
const d = new Date("2015-3-25");
Chování "RRRR/MM/DD" není definováno.
Některé prohlížeče budou zkuste uhodnout formát. Někteří vrátí NaN.
const d = new Date("2015/03/25");
Chování „DD-MM-RRRR“ také není definováno.
Některé prohlížeče zkuste uhodnout formát. Někteří vrátí NaN.
const d = new Date("25-03-2015");
Dlouhá data se nejčastěji zapisují pomocí syntaxe "MMM DD YYYY" takto:
const d = new Date("Mar 25 2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Měsíc a den mohou být v libovolném pořadí:
const d = new Date("25 Mar 2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Měsíc lze napsat celý (leden) nebo zkráceně (leden):
const d = new Date("January 25 2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
const d = new Date("Jan 25 2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Čárky jsou ignorovány. V názvech se nerozlišují malá a velká písmena:
const d = new Date("JANUARY, 25, 2015");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Pokud máte platný řetězec data, můžete použít Date.parse()
k převodu na milisekundy.
Date.parse()
vrací počet milisekund mezi datem a lednem 1, 1970:
let msec = Date.parse("March 21, 2012");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>
<p id="demo"></p>
<script>
const msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>
</body>
</html>
Poté můžete použít počet milisekund k převedení na objekt data:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>
<p id="demo"></p>
<script>
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Úplný odkaz na datum naleznete na naší stránce:
Kompletní odkaz na datum JavaScriptu.
Odkaz obsahuje popisy a příklady všech vlastností Date a metody.