我遇到了一些与众不同的事情。出于某种原因,当添加一个仅设置了几分钟的日期间隔时,它会增加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)
答案 0 :(得分:1)
M
持续数月,因此增加了810个月(67。5年)。使用i
或I
分钟。
$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