Det finns i allmänhet tre typer av JavaScript-datuminmatningsformat:
"2015-03-25" (den internationella standarden)
"03/25/2015"
"25 mars 2015" eller "25 mars 2015"
ISO-formatet följer en strikt standard i JavaScript.
De andra formaten är det inte så väldefinierad och kan vara webbläsarspecifik.
Oberoende av inmatningsformat kommer JavaScript (som standard) att mata ut datum i sin helhet textsträngsformat:
ISO 8601 är den internationella standarden för representation av datum och gånger.
ISO 8601-syntaxen (ÅÅÅÅ-MM-DD) är också det föredragna JavaScript-datumformatet:
const d = new Date("2015-03-25");
Prova själv →
<!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>
Det beräknade datumet kommer att vara relativt din tidszon.
Beroende på din tidszon, resultatet ovan kommer att variera mellan 24 mars och 25 mars.
ISO-datum kan skrivas utan att ange dagen (ÅÅÅÅ-MM):
const d = new Date("2015-03");
Prova själv →
<!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 kommer att variera resultatet ovan mellan 28 februari och 1 mars.
ISO-datum kan skrivas utan månad och dag (ÅÅÅÅ):
const d = new Date("2015");
Prova själv →
<!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 kommer att variera resultatet ovan mellan 31 december 2014 och 1 januari 2015.
ISO-datum kan skrivas med tillagda timmar, minuter och sekunder (ÅÅÅÅ-MM-DDTHH:MM:SSZ):
const d = new Date("2015-03-25T12:00:00Z");
Prova själv →
<!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 och tid separeras med stort T.
UTC-tid definieras med stor bokstav Z.
Om du vill ändra tiden i förhållande till UTC, ta bort Z och lägg till +HH:MM eller -HH:MM istället:
const d = new Date("2015-03-25T12:00:00-06:30");
Prova själv →
<!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) är samma som GMT (Greenwich Mean Time).
Att utelämna T eller Z i en datum-tid-sträng kan ge olika resultat i olika webbläsare.
När du ställer in ett datum, utan att ange tidszon, kommer JavaScript att använda webbläsarens tidszon.
När man får ett datum, utan att ange tidszon, blir resultatet konverteras till webbläsarens tidszon.
Med andra ord: Om ett datum/tid skapas i GMT (Greenwich Mean Time), datum/tid kommer att konverteras till CDT (Central US Daylight Time) om en användare surfar från centrala USA.
Korta datum skrivs med syntaxen "MM/DD/ÅÅÅÅ" så här:
const d = new Date("03/25/2015");
Prova själv →
<!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>
I vissa webbläsare kan månader eller dagar utan inledande nollor ge ett fel:
const d = new Date("2015-3-25");
Beteendet för "ÅÅÅÅ/MM/DD" är odefinierat.
Vissa webbläsare gör det försök gissa formatet. Vissa kommer att returnera NaN.
const d = new Date("2015/03/25");
Beteendet för "DD-MM-ÅÅÅÅ" är också odefinierat.
Vissa webbläsare gör det försök gissa formatet. Vissa kommer att returnera NaN.
const d = new Date("25-03-2015");
Långa datum skrivs oftast med en "MMM DD ÅÅÅÅ"-syntax så här:
const d = new Date("Mar 25 2015");
Prova själv →
<!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ånad och dag kan vara i valfri ordning:
const d = new Date("25 Mar 2015");
Prova själv →
<!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>
Och månad kan skrivas i sin helhet (januari) eller förkortas (jan):
const d = new Date("January 25 2015");
Prova själv →
<!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");
Prova själv →
<!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>
Komma ignoreras. Namn är skiftlägesokänsliga:
const d = new Date("JANUARY, 25, 2015");
Prova själv →
<!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>
Om du har en giltig datumsträng kan du använda Date.parse()
-metoden för att konvertera den till millisekunder.
Date.parse()
returnerar antalet millisekunder mellan datumet och januari 1, 1970:
let msec = Date.parse("March 21, 2012");
Prova själv →
<!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 sedan använda antalet millisekunder för att konvertera det till ett datumobjekt:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
Prova själv →
<!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>
För en fullständig datumreferens, gå till vår:
Komplettera JavaScript-datumreferens.
Referensen innehåller beskrivningar och exempel på alla Date-egenskaper och metoder.