按DateInterval为日期添加持续时间


Add a duration to a date by DateInterval

可能重复:
PHP 5.2 使用哪些日期/时间函数

我想给日期添加一个持续时间,我设置了这个代码:

$date = new DateTime(Date('r'));
$date = $date->format("d-m-Y H:i:s");                       
$interval = new DateInterval('PT1H2M3S');        
$date = $date->add($interval);        
echo $date;

我得到这个错误:类"DateInterval"找不到

为什么会出现这种情况,以及如何在没有DateInterval的情况下修改日期?

原因

DateInterval是在PHP 5.3中添加的,如手册页面上所述:

DateInterval类

(PHP 5>=5.3.0)

PHP版本升级

您可以通过运行phpversion():来了解您使用的PHP版本

echo 'Current PHP version: ' . phpversion();

如果您运行的版本低于5.3,则需要将其升级以使用DateInterval

备选方案

正如@Gordon提到的,你可以使用DateTime::modify(),例如:

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

为约会对象添加一天。

我使用strtotime。也许不是最好的,但肯定是最简单的方法:

echo date("d-m-Y H:i:s",strtotime("2012-02-15 1 hour 2 min 3 sec"));

或者如果你需要从现在开始的间隔,只使用:

echo date("d-m-Y H:i:s",strtotime("1 hour 2 min 3 sec"));