Mám webovou stránku se třemi rozevíracími seznamy pro den, měsíc a rok. Pokud použiji JavaScript Date
konstruktor, který bere čísla, pak dostanu Date
objekt pro mé aktuální časové pásmo:
new Date(xiYear, xiMonth, xiDate)
Uveďte správné datum, ale domnívá se, že datum je GMT+01:00 kvůli letnímu času.
Problém je v tom, že pak předám toto Date
na metodu Ajax, a když je datum deserializováno na serveru, bylo převedeno na GMT, a tak přišla o hodinu, která posune den o jednu zpět. Nyní jsem mohl jednoduše předat den, měsíc a rok jednotlivě do metody Ajax, ale zdá se, že by měl existovat lepší způsob.
Přijatá odpověď mě nasměrovala správným směrem, ale pouze pomocí setUTCHours()
samo o sobě změněno:
Apr 5th 00:00 GMT+01:00
do
Apr 4th 23:00 GMT+01:00
Potom jsem také musel nastavit datum UTC, měsíc a rok, aby skončilo s
Apr 5th 01:00 GMT+01:00
což jsem chtěl.
Odpověď
pomocí .setUTCHours()
bylo by možné skutečně nastavit data v UTC čase, což by vám umožnilo používat UTC časy v celém systému.
Nemůžete jej však nastavit pomocí UTC v konstruktoru, pokud nezadáte řetězec data.
Pomocí new Date(Date.UTC(year, month, day, hour, minute, second))
můžete vytvořit objekt Date z určitého času UTC.
Příklad