給定開始日期和天數,我需要顯示結束日期=開始日期+天數。考慮夏令時的兩個日期之間的差異
所以我做了這樣的事情:
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