我最近遇到了一個大問題,因爲我有一個每週向客戶付費的系統。ISO-8601周編號與PHP中的「Outlook」編號
衆所周知,一年有52周,並且有標準。我使用PHP又名日期('W')來獲取日期中的星期數,該日期根據標準ISO-8601進行計算。
這裏有一些參考:
但這裏有一個問題:2009年有53個星期。看來通過公元400年內的公曆有71年,有53周。這是我不知道的一件事,可能很多事情都不是這樣。
根據維基百科:
2009-12-31 2009年是-W53-4(ISO 2009年全年有53周,2009年擴大了西曆,開始與結束日,在兩端結束三天)。
和PHP中的日期函數完全尊重它。
如果您查看MS Outlook,並在日曆視圖中顯示星期幾,則將出現52周 考慮2009年12月28日至2010年1月3日第1周。這是另一個標準嗎?美國標準還是什麼?
如果是這樣,那麼爲什麼PHP不能支持它呢?有沒有人提供支持這個功能的功能?
有53周是否正確?我們有歐洲和美國的客戶。
有趣的問題。我注意到Outlook在2011年有53周的時間。它看起來像是將「第一週」定義爲包含1月1日的第一週。由於周可以在週日或週一基於設置開始,因此實際上可能會因不同而有所不同用戶。 – 2010-02-04 18:16:53
我剛試過。 Outlook將允許您選擇任何一天作爲星期開始日,而星期編號僅從包含Jan 1的那一週開始。因此Outlook中有七種不同的編號方案。 – 2010-02-04 18:19:05