php日期函数返回的年份错误

php日期函数返回的年份错误,php,date,Php,Date,我一辈子都搞不懂这个。我有一个日期需要格式化。页面上有多个日期,格式正好 echo date('M jS o',strtotime('2012-12-31')) //is returning "Dec 31st 2013". echo date('M jS o',strtotime('2013-12-31')) //is returning "Dec 31st 2014". 以此类推,向前一年总是有一年的时间 但是 以此类推,向后看,它们很好。这是玛雅人对我们的天启计划还是什么 有什么想法吗

我一辈子都搞不懂这个。我有一个日期需要格式化。页面上有多个日期,格式正好

echo date('M jS o',strtotime('2012-12-31')) //is returning "Dec 31st 2013". 
echo date('M jS o',strtotime('2013-12-31')) //is returning "Dec 31st 2014".
以此类推,向前一年总是有一年的时间

但是

以此类推,向后看,它们很好。这是玛雅人对我们的天启计划还是什么

有什么想法吗?我想答案很简单


谢谢

对年份使用
Y
,而不是
o
。根据
日期
文件:

o
:ISO-8601年编号。该值与Y值相同,只是如果ISO周数(W)属于上一年或下一年,则使用该年。(在PHP 5.1.0中添加)


我刚才看到了。我使用o试图遵守ISO-8601规则。看来事与愿违。我会换的,谢谢!2012年前一年没有将第31个登记为下一年,这有什么原因吗?取决于第31个登记日是在哪个工作日。
date('M jS o',strtotime('2011-12-31')) //returns correctly "Dec 31st 2011". 
date('M jS o',strtotime('2010-12-31')) //returns correctly "Dec 31st 2010".