PHP DateTime问题

时间:2011-05-18 02:34:15

标签: php datetime

我遇到了一些与众不同的事情。出于某种原因,当添加一个仅设置了几分钟的日期间隔时,它会增加67年。

$wTime = new DateTime("2011-05-17 01:54:56 +0000");
echo $wTime->format("d/m/Y H:i:s\n");
$wTime->add(new DateInterval("P810M")); 
echo $wTime->format("d/m/Y H:i:s");

结果是:

17/05/2011 01:54:56
17/11/2078 01:54:56

我无法看到我在做错什么。这是DateTime对象中的错误,还是与我的代码有关?我以前遇到过烦人的错误。我正在运行从Mac OS X 10.6上的源代码构建的最新版本的PHP(5.3.6)

4 个答案:

答案 0 :(得分:1)

M持续数月,因此增加了810个月(67。5年)。使用iI分钟。

$wTime->add(new DateInterval("P810I"));

PHP manual page for DateInterval包含已识别格式的完整列表。

答案 1 :(得分:0)

Check the docs,你增加了810个月(约67岁)。试试PT810M

答案 2 :(得分:0)

您实际上是在增加810个月而不是分钟。试试 -

$wTime->add(new DateInterval("P810I"));

看起来PHP documentation也错了。但是,如果你看一下该页面上的示例输出,你就会发现分钟的代码是'i',而不是'm'。

答案 3 :(得分:0)

你添加了几个月,而不是几分钟。请尝试使用i代替m