8

次のようにフォーマットされた .Net サービスから UTC 日付/時刻のリストを返します。

"2013-07-09 19:48:07 +00:00".

クライアントでは、これらの各文字列値を対応する UTC ベースの時刻に変換します。

var fooUtc = new moment.utc(serverDateTimeString)

このページには、ユーザーが変更できるタイムゾーンのリストを含むドロップダウンがあります。これらは、次のようなタイムゾーン オブジェクトのコレクションに関連付けられています。

{
    id: "Central Standard Time",
    label: "(UTC-06:00) Central Time (US & Canada)",
    observesDaylightSavings: true,
    baseUtcOffset: {
        asHours: -6,
        asMinutes: -360,
        asText: "-06:00"
}

次に、次のように、選択したタイム ゾーン オフセットで通過する各瞬間を表示します。

fooUtc.local().zone(selectedTimeZone.baseUtcOffset.asMinutes).format()

ただし、.Net からのタイムゾーン データは dst オフセットと非 dst オフセットを区別しないため、この結果では夏時間が考慮されていません。

これを moment.js または新しい moment-timezone ビットで機能させる方法はありますか? 標準の UTC オフセット名 (例: "Central Standard Time") を特定のタイムゾーンのOlson DB 識別子 (例: "America/Chicago") にマップできれば可能だと思いますが、もっと簡単な方法があればお願いしますお知らせ下さい。

4

1 に答える 1