文字列表現を使用せずにタイムゾーンを設定した日付を作成する 質問する

文字列表現を使用せずにタイムゾーンを設定した日付を作成する 質問する

日、月、年の 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 オブジェクトを作成できます。

おすすめ記事