Formattera datum i JavaScript

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10921
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Formattera datum i JavaScript

Inlägg21 jan 2019, 17:30

Ibland vill man formattera ett datum för utskrift, till exempel om man tar en datum från en databas och vill skriva ut på ett enkelt sätt med YYYY-MM-DD.

Det kan vara lite klurigt och om vi rådfrågar SO får vi fler än en handfull rekommendationer...
How to format a JavaScript date

Jag fastnade för alternativet med ISOString, men det beror på vad man vill göra.
Kod: Markera allt
var today = new Date().toISOString().slice(0, 10);

eller med JSON
Kod: Markera allt
var today = new Date().toJSON().slice(0, 10);
...
..:
.... /mos
Användarvisningsbild

lrc

troubleshooter

  • Inlägg: 389
  • Blev medlem: 11 aug 2016, 21:38
  • Ort: Östersund

Re: Formattera datum i JavaScript

Inlägg21 jan 2019, 18:20

Snabbt och enkelt visserligen, men precis som man kan läsa i SO-tråden så fungerar detta endast tillförlitligt om man inte bryr sig om tidszoner, då både .toISOString() och .toJSON() returnerar datumet i UTC-format, vilket kan ställa till det timmarna kring midnatt ur ett svenskt perspektiv. Detta är värt att poängtera en extra gång så man slipper gå på den niten i onödan (been there, done that).
Kod: Markera allt
// UTC+1
var foo = new Date(2019, 0, 21, 0, 0, 0);     // 2019-01-21 00:00:00
console.log(foo.toISOString().slice(0, 10));  // 2019-01-20

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 8 gäster