JavaScript-datoformater


Indholdsfortegnelse

    Vis indholdsfortegnelse


Indtastning af JavaScript-dato

Der er generelt 3 typer JavaScript-datoinputformater:

ISO Date

"2015-03-25" (den internationale standard)

Short Date

"25/03/2015"

Long Date

"25. marts 2015" eller "25. marts 2015"

ISO-formatet følger en streng standard i JavaScript.

Det er de andre formater ikke så veldefineret og kan være browserspecifik.


JavaScript-datooutput

Uafhængigt af inputformat vil JavaScript (som standard) udlæse datoer i fuld udstrækning tekststrengformat:


JavaScript ISO-datoer

ISO 8601 er den internationale standard for repræsentation af datoer og gange.

ISO 8601-syntaksen (ÅÅÅÅ-MM-DD) er også det foretrukne JavaScript-datoformat:

Eksempel (fuldstændig dato)

const d = new Date("2015-03-25");

Prøv det selv →

<!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>

Den beregnede dato vil være i forhold til din tidszone.
Afhængigt af din tidszone vil resultatet ovenfor vil variere mellem 24. marts og 25. marts.



ISO-datoer (år og måned)

ISO-datoer kan skrives uden at angive dagen (ÅÅÅÅ-MM):

Eksempel

const d = new Date("2015-03");

Prøv det selv →

<!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>

Tidszoner vil variere resultatet ovenfor mellem 28. februar og 1. marts.


ISO-datoer (kun år)

ISO-datoer kan skrives uden måned og dag (ÅÅÅÅ):

Eksempel

const d = new Date("2015");

Prøv det selv →

<!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>

Tidszoner vil variere resultatet ovenfor mellem 31. december 2014 og 1. januar 2015.


ISO-datoer (dato-klokkeslæt)

ISO-datoer kan skrives med tilføjede timer, minutter og sekunder (ÅÅÅÅ-MM-DDTHH:MM:SSZ):

Eksempel

const d = new Date("2015-03-25T12:00:00Z");

Prøv det selv →

<!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>

Dato og klokkeslæt er adskilt med stort T.

UTC-tid er defineret med stort Z.

Hvis du vil ændre tiden i forhold til UTC, skal du fjerne Z og tilføje +TT:MM eller -TT:MM i stedet:

Eksempel

const d = new Date("2015-03-25T12:00:00-06:30");

Prøv det selv →

<!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) er det samme som GMT (Greenwich Mean Time).

Udeladelse af T eller Z i en dato-tid-streng kan give forskellige resultater i forskellige browsere.


Tidszoner

Når du indstiller en dato, uden at angive tidszonen, vil JavaScript bruge browserens tidszone.

Når du får en dato, uden at angive tidszonen, er resultatet konverteret til browserens tidszone.

Med andre ord: Hvis en dato/tid oprettes i GMT (Greenwich Mean Time), dato/tid vil blive konverteret til CDT (Central US Daylight Time), hvis en bruger browser fra det centrale USA.


JavaScript korte datoer.

Korte datoer skrives med en "MM/DD/ÅÅÅÅ" syntaks som denne:

Eksempel

const d = new Date("03/25/2015");

Prøv det selv →

<!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>

ADVARSLER!

I nogle browsere kan måneder eller dage uden indledende nuller give en fejl:

const d = new Date("2015-3-25");

Opførselen af "ÅÅÅÅ/MM/DD" er udefineret.
Nogle browsere vil prøv at gætte formatet. Nogle vil returnere NaN.

const d = new Date("2015/03/25");

Opførselen af "DD-MM-ÅÅÅÅ" er også udefineret.
Nogle browsere vil prøv at gætte formatet. Nogle vil returnere NaN.

const d = new Date("25-03-2015");

JavaScript lange datoer.

Lange datoer skrives oftest med en "MMM DD ÅÅÅÅ" syntaks som denne:

Eksempel

const d = new Date("Mar 25 2015");

Prøv det selv →

<!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åned og dag kan være i vilkårlig rækkefølge:

Eksempel

const d = new Date("25 Mar 2015");

Prøv det selv →

<!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>

Og måned kan skrives fuldt ud (januar) eller forkortet (januar):

Eksempel

const d = new Date("January 25 2015");

Prøv det selv →

<!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>

Eksempel

const d = new Date("Jan 25 2015");

Prøv det selv →

<!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>

Kommaer ignoreres. Navne skelner mellem store og små bogstaver:

Eksempel

const d = new Date("JANUARY, 25, 2015");

Prøv det selv →

<!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>

Datoinput - Parsing datoer

Hvis du har en gyldig datostreng, kan du bruge Date.parse() metode til at konvertere den til millisekunder.

Date.parse() returnerer antallet af millisekunder mellem datoen og januar 1, 1970:

Eksempel

let msec = Date.parse("March 21, 2012");

Prøv det selv →

<!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>

Du kan derefter bruge antallet af millisekunder til at konvertere det til et dato-objekt:

Eksempel

let msec = Date.parse("March 21, 2012");
const d = new Date(msec);

Prøv det selv →

<!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>

Komplet JavaScript-datoreference

For en komplet Datoreference, gå til vores:

Komplet JavaScript-datoreference.

Referencen indeholder beskrivelser og eksempler på alle Dato-egenskaber og metoder.