日、月、年の 3 つのドロップダウンがある Web ページがあります。数値を受け取る JavaScript コンストラクターを使用すると、現在のタイムゾーンのオブジェクトDate
が取得されます。Date
new Date(xiYear, xiMonth, xiDate)
正しい日付を指定しましたが、夏時間のため日付は GMT+01:00 であると認識されます。
ここでの問題は、これを Ajax メソッドに渡すDate
と、日付がサーバー上で逆シリアル化されるときに GMT に変換され、1 時間失われ、日が 1 日戻ることです。これで、日、月、年を個別に Ajax メソッドに渡すことができますが、もっと良い方法があるはずです。
受け入れられた回答は正しい方向を示しましたが、単独setUTCHours()
で使用すると次のように変化しました。
Apr 5th 00:00 GMT+01:00
に
Apr 4th 23:00 GMT+01:00
そして、UTCの日付、月、年も設定する必要がありました。
Apr 5th 01:00 GMT+01:00
それが私が望んでいたことです。
ベストアンサー1
これを使用すると.setUTCHours()
、実際に日付を UTC 時間で設定することが可能になり、システム全体で UTC 時間を使用できるようになります。
ただし、日付文字列を指定しない限り、コンストラクターで UTC を使用して設定することはできません。
を使用するとnew Date(Date.UTC(year, month, day, hour, minute, second))
、特定の UTC 時間から Date オブジェクトを作成できます。