Autor Zpráva
jirka2
Profil
Ahoj,
narazil jsem na takovou podivnost, vytvářím Date object ze stringu, např.:
var d = new Date('October 28, 2019');
document.write(d);
zobrazí se správné:
Mon Oct 28 2019 00:00:00 GMT+0100 (Středoevropský standardní čas)
obdobně je tomu i u stringu
var d = new Date('2019-10-28 00:00');
ale pokud nezadám čas:
var d = new Date('2019-10-28');
zobrazí se toto:
Mon Oct 28 2019 01:00:00 GMT+0100 (Středoevropský standardní čas)
je tam půlnoc světového času, nikoliv lokálního!
Problém je pak s klienty na západ od nultého poledníku, například na Aljašce (testováno ve virtuálu) se zobrazí toto:
Sun Oct 27 2019 16:00:00 GMT-0800 (GMT-08:00)
a potom tedy kód
var d = new Date('2019-10-28');
document.write(d.getDate());
zobrazí (na Aljašce) 27 a to není dobré. Problém se týká pouze stringu ve tvaru 'RRRR-MM-DD', ostatní způsoby vytváření objektu Date jsou OK a nemusím zadávat nula hodin, nula minut. Rád bych, aby bylo možno zadávat datum v JS programu libovolně, pak z něj preparuji pouze den a s tím dále pracuji. Není to náhodou nějaký bug? Nebo je problém u mě?

díky za rady, Jirka
N71
Profil *
Implemetace Date.parse() je v tomto nekonzistentní. Viz MDN.
jirka2
Profil
N71:
Díky za rychlou odpověď, ovšem nepotěšila mě...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0