目標(biāo): 現(xiàn)地時間
と UTC 時間オフセット
を見つけて、次の形式で URL を構(gòu)築します。
URL の例:/Actions/Sleep?duration=2002-10-10T12:00:00?05:00
この形式は W3C の推奨事項に基づいています。ドキュメントには次のように書かれています:
例: 2002-10-10T12:00:00?05:00 (2002 年 10 月 10 日正午、 中部夏時間と東部標(biāo)準(zhǔn)時) 2002-10-10T12:00:00Z より 5 時間後の 2002-10-10T17:00:00Z に相當(dāng)します。
したがって、私の理解では、new Date()
を介して現(xiàn)地時間を検索し、getTimezoneOffset()
関數(shù)を使用して差を計算し、それを末尾に追加する必要があります。文字列 。
format
を使用して現(xiàn)地時間を取得します
UTC 時間オフセットの取得
リーリーURL の構(gòu)築 (時間部分のみ)
リーリー上記の出力は、現(xiàn)地時間が 2013 年 7 月 2 日の午前 9 時であることを意味します。これは UTC と 7 時間異なります (UTC は現(xiàn)地時間より 7 時間進(jìn)んでいます)
ここまでは機(jī)能しているように見えますが、getTimezoneOffset()
が負(fù)の値 (例: -120) を返したらどうなるでしょうか?
W3C ドキュメントからは理解できないため、この場合の形式はどのようになるべきなのか疑問に思っています。
getTimezoneOffset()
參照する仕様で必要とされる形式の反対の符號を返します。
この形式は、ISO8601、より正確には RFC3339 とも呼ばれます。
この形式では、UTC は Z
で表され、他のすべての形式は UTC からのオフセットで表されます。意味はJavaScriptと同じですが、減算の順序が逆になるため、結(jié)果の符號が逆になります。
さらに、ローカルの Date
オブジェクトには format
という名前のメソッドがないため、この目的でライブラリを使用しない限り、#1 の関數(shù)は失敗します。 このドキュメントを參照してください。
この形式を直接操作できるライブラリを探している場合は、moment.js を試してみることをお勧めします。実際、これはデフォルトの形式なので、次のようにするだけです:
リーリーこれは十分にテストされたクロスブラウザ ソリューションであり、他にも多くの便利な機(jī)能があります。