我有一个web应用程序,总是存储日期为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
- 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
- 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/
这台机器在使用BST时间时,没有配置为自动更改时区以匹配日期。
结果在4月6日,它仍然被列为GMT标准时间,而不是GMT夏令时。
选择自动更改选项,修复此问题。