Moje objekty data v JavaScriptu jsou vždy reprezentovány UTC +2 kvůli tomu, kde se nacházím. Proto takto
Mon Sep 28 10:00:00 UTC+0200 2009
Problémem je provedení JSON.stringify
převede výše uvedené datum na
2009-09-28T08:00:00Z (notice 2 hours missing i.e. 8 instead of 10)
Potřebuji, aby bylo dodrženo datum a čas, ale není tomu tak, proto by to mělo být
2009-09-28T10:00:00Z (this is how it should be)
V zásadě používám toto:
var jsonData = JSON.stringify(jsonObject);
Zkoušel jsem předat náhradní parametr (druhý parametr na stringify), ale problém je v tom, že hodnota již byla zpracována.
Zkoušel jsem také použít toString()
a toUTCString()
na datovém objektu, ale ani ty mi nedávají to, co chci..
Může mi někdo pomoci?
Odpověď
Nedávno jsem narazil na stejný problém. A bylo to vyřešeno pomocí následujícího kódu:
x = new Date(); let hoursDiff = x.getHours() - x.getTimezoneOffset() / 60; let minutesDiff = (x.getHours() - x.getTimezoneOffset()) % 60; x.setHours(hoursDiff); x.setMinutes(minutesDiff);