给定开始日期和天数,我需要显示结束日期=开始日期+天数。考虑夏令时的两个日期之间的差异
所以我做了这样的事情:
var endDate=new Date(startDate.getTime()+ONE_DAY);
一切正常,但25日和26日给少开一天。
例:
2014-01-01 + 2 days = 2014-01-03
2014-10-25 + 2 days = 2014-10-26 (here is the case I need to treat).
这种差异出现,因为时钟要回1小时。实际上2014-10-27 00:00:00
变成2014-10-26 23:00:00
。
一个简单的解决方案是在另一个小时计算(例如上午3点)。但是我想在这种情况发生时显示一个注释。
例如,如果用户输入2014-10-25
,我会显示一个弹出窗口说[something]。
现在,这里是真正的问题......我似乎无法找到说,任何算法时的时钟可以追溯到在今年十
例......在2014年的一天是10月26日。 2016年是10月30日(https://www.gov.uk/when-do-the-clocks-change)。为什么?这个日期看起来是随机的,但我不认为它是。那么......时钟何时回退/前进?
编辑:所有的答案/评论有助于如何解决这个问题。但是......我已经通过了这个舞台。现在我只有一句关于“计算时钟的时间到底如何计算?”的痒痒。
如果您不反对使用图书馆,我会强烈建议使用moment.js和时区时区,但在处理这些情况时会带来很多麻烦(http://momentjs.com/) – Quince 2014-10-06 07:37:11
夏令时不是基于特定的日期,通常在特定月份的第一个星期日的02:00,随着地方采用或停止使用而频繁变化,或者只是更改开始的一周,因为它似乎是一个好主意。没有一致性,尽管赤道附近的国家倾向于不使用它比靠近两极的国家更多。 – RobG 2014-10-06 08:16:11