我使用PHP的date()
函数遇到了一个有趣的问题。没有任何运气在SO上或使用谷歌进行讨论,但也许其他人之前遇到过同样的问题?
我试图获得给定时间戳的年份和本年度。这是我正在使用的代码:
date("Y-\WW");
截至今天正确输出:2011-W39
。
问题在于提供时间戳,如果有问题的时间戳是,例如,2011年1月3日(实际上是“2010年第52周”的一部分.PHP正确返回W52,但它也返回2011年作为一年,而不是2010年。
date("Y-\WW", 1294016400);
输出:2011-W52
有关如何解决此问题的任何想法?我应该注意到,虽然在这种情况下很容易比较输出的strtotime()
大于当前time()
并进行调整,但我需要一个适用于前几年的解决方案好吧(例如,如果2010年1月3日发生同样的事情)。
答案 0 :(得分:24)
Darn,显然我没有仔细阅读文档,在PHP 5.1.0中添加了o
字母:
来自date()
的文档:
ISO-8601年号。它具有与Y相同的值,除了如果ISO周数(W)属于上一年或下一年,则使用该年代。 (在PHP 5.1.0中添加)
所以我的代码应该是date("o-\WW");