我有一个始终将日期存储为 UTC 的网络应用程序,但它们需要分别以 GMT/BST 的形式向用户显示。
我有一个 UTC/GMT 日期(2013 年 3 月 30 日 22:00),我每小时移动一次以跨越 GMT/BST 边界。我正在使用该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+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+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+0100 - 02:00
- 1364698800 - 03:00 GMT+0100 - 03:00
现在,在我看来,最后 3 个日期是不正确的。
有任何想法吗?
这是一个小提琴:http: //jsfiddle.net/twilson/WRbyh/