我最近遇到了一个大问题,因为我有一个每周向客户付费的系统。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