1. ホーム
  2. javascript

[解決済み] JavaScriptの日付をUTCに変換する方法を教えてください。

2022-03-14 19:49:34

質問

あなたのウェブサイトのユーザーが、日付の範囲を入力したとします。

2009-1-1 to 2009-1-3

この日付をサーバーに送って何らかの処理をする必要がありますが、サーバーはすべての日付と時刻がUTCであることを期待しています。

ここで、ユーザーがアラスカやハワイ、フィジーにいるとします。彼らはUTCとは全く異なるタイムゾーンにいるので、日付の範囲はこのように変換される必要があります。

2009-1-1T8:00:00 to 2009-1-4T7:59:59

JavaScriptのDateオブジェクトを使って、最初のquot;localized"の日付範囲をサーバーが理解できるものにどのように変換しますか?

どのように解決するのですか?

<ブロッククオート

その toISOString() メソッドは、簡略化された拡張ISOの文字列を返します。 の形式を使用します ( ISO 8601 ) で、常に24文字または27文字の長さです。 ( YYYY-MM-DDTHH:mm:ss.sssZ または ±YYYYYY-MM-DDTHH:mm:ss.sssZ , それぞれ)。タイムゾーンは常にUTCオフセットゼロである。 という接尾辞があります。 Z となります。

出典 MDNウェブドックス

必要なフォーマットは .toISOString() メソッドを使用します。このメソッドにネイティブに対応していない古いブラウザ(ie8以下)では、shimがあります。 こちら :

これで、必要な機能を実現することができます。

var isoDateString = new Date().toISOString();
console.log(isoDateString);

タイムゾーンワークの場合。 moment.jsとmoment.jsのタイムゾーン 特に、クライアントとサーバーのJavaScript間でタイムゾーンをナビゲートするためのツールは、本当に貴重です。