2

日付を常に UTC として保存する Web アプリがありますが、それぞれ GMT/BST としてユーザーに表示する必要があります。

私は UTC/GMT の日付 (2013 年 3 月 30 日 22:00) を持っています。GMT/BST の境界を越えるために、これを 1 時間ごとに移動しています。setTime()メソッドを使用して日付を操作しています。

したがって、入力タイムスタンプ、表示時間、UTC 時間は次のとおりです。

  • 1364808000 - 22:00 GMT+0000 - 22:00
  • 1364685500 - 23:00 GMT+0000 - 23:00
  • 1364688000 - 00:00 GMT+0000 - 00:00
  • 1364691600 - 02:00 GMT+0100 - 01:00
  • 1364695200 - 03:00 GMT+0100 - 02:00
  • 1364698800 - 04:00 GMT+0100 - 03:00

マシンが GMT の場合、次のように出力されます。

  • 1364808000 - 22:00 GMT+0000 - 22:00
  • 1364685500 - 23:00 GMT+0000 - 23:00
  • 1364688000 - 00:00 GMT+0000 - 00:00
  • 1364691600 - 02:00 GMT+0100 - 01:00
  • 1364695200 - 03:00 GMT+0100 - 02:00
  • 1364698800 - 04:00 GMT+0100 - 03:00

マシンが BST の場合、出力は次のとおりです。

  • 1364808000 - 22:00 GMT+0000 - 22:00
  • 1364685500 - 23:00 GMT+0000 - 23:00
  • 1364688000 - 00:00 GMT+0000 - 00:00
  • 1364691600 - 00:00 GMT+0000 - 01:00
  • 1364695200 - 02:00 GMT+0100 - 02:00
  • 1364698800 - 03:00 GMT+0100 - 03:00

さて、私の考えでは、これらの最後の 3 つの日付は正しくありません。

何か案は?

ここにフィドルがあります:http://jsfiddle.net/twilson/WRbyh/

4

1 に答える 1

1

マシンは、BST 時間中に、日付に合わせてタイムゾーンを自動的に変更するように構成されていなかったことが判明しました。

その結果、4 月 6 日はGMT 夏時間ではなくGMT 標準時間として記載されていました。

自動的に変更するオプションにチェックを入れると、この問題が修正されました。

于 2013-03-06T11:33:01.067 に答える