2012-01-12 119 views
2

我不知道这一点对我的生活。我有一个需要格式化的日期。页面上有多个日期格式很好。PHP日期函数返回错误年

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". 

等等,今年往后一年总是一年过。

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". 

等,会落后他们都很好。这是玛雅人向我们投掷的一些启示录计划吗? :)

任何想法?我假设有一个简单的答案。

谢谢!

回答

8

使用Y为一年,不o。根据date文档:

o:ISO-8601年数字。这有相同的值Y,除了如果ISO星期数(W)属于前一年或下一年,这一年来代替。 (在PHP 5.1.0添加)

+0

我刚才看到。我正在使用o试图坚持ISO-8601规则。猜猜这会让人反感。我会改变这一点,谢谢! 2012年的前一年到底是不是第31年登记的原因是什么? – leviathenator 2012-01-12 17:39:05

+0

取决于其平日的31日适逢。 – ceejayoz 2012-01-12 17:55:22