我遇到了一些不寻常的事情。出于某种原因,当添加仅设置分钟的日期间隔时,它会增加 67 年。
$wTime = new DateTime("2011-05-17 01:54:56 +0000");
echo $wTime->format("d/m/Y H:i:sn");
$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)
M
是几个月,所以这增加了 810 个月(67.5 年)。使用 i
或 I
几分钟。
$wTime->add(new DateInterval("P810I"));
DateInterval 的 PHP 手册页包含可识别格式的完整列表。
检查文档,您正在添加 810 个月(~67 年)。试试PT810M
您实际上增加了 810 个月而不是分钟。尝试-
$wTime->add(new DateInterval("P810I"));
看起来 PHP 文档是错误的。但是,如果您查看该页面上的示例输出,您将意识到分钟代码是"i",而不是"m"。
您添加了月,而不是分钟。尝试i
而不是m