PHP 日期时间问题


PHP DateTime issue

我遇到了一些不寻常的事情。出于某种原因,当添加仅设置分钟的日期间隔时,它会增加 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)

M

几个月,所以这增加了 810 个月(67.5 年)。使用 iI 几分钟。

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

DateInterval 的 PHP 手册页包含可识别格式的完整列表。

检查文档,您正在添加 810 个月(~67 年)。试试PT810M

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

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

看起来 PHP 文档是错误的。但是,如果您查看该页面上的示例输出,您将意识到分钟代码是"i",而不是"m"。

您添加了月,而不是分钟。尝试i而不是m