在Javascript中,我需要在unix epoch时间戳中添加一天。所以,我尝试在我的日期添加24 * 60 * 60 * 1000或86400000毫秒,比如说:1396306800000,根据http://www.epochconverter.com/,4/1/2014 12:00:00 AM GMT+1
为1396393200000
。现在,当我尝试添加一天时,为了得到结果,4/2/2014 12:00:00 AM GMT+1
即:1396306800000
。
只有一天,对吧?
现在,我尝试从原始1396220400000
中减去一天,以获得3/31/2014 12:00:00 AM GMT+1
或1396134000000
到目前为止,非常好。
现在,如果我再做一次减法,我会得到:3/29/2014 11:00:00 PM GMT+0
{{1}}
这怎么可能?随后的减法将以相同的偏移顺利进行。但在这个特殊时刻,3月30日完全被忽略了。谁能告诉我发生了什么?
答案 0 :(得分:1)
一天不会跳过,你不考虑夏令时。
在夏令时调整期间,这一天只有23小时,您将从中减去24小时。
答案 1 :(得分:1)
夏令时。可能是British Summer Time。
您可能忽略了
中的GMT+1
3/31/2014 12:00:00 AM GMT+1
如果您查看较早的日期,请GMT+0
:
3/29/2014 11:00:00 PM GMT+0
英国(及其他国家)在3月的最后一个星期日(即今年3月30日(2014年))切换时区。该网站使用您当地的时区设置。这解释了一小时的明显差异。
答案 2 :(得分:0)
我查看了您提供的链接并进行了计算,并给出了正确的结果。
因此,如果您从1396306800000减去一天,那么它将变为1396220400000 = 1396306800000-86400000
,输出
GMT:Sun,2014年3月30日23:00:00 GMT