通过DateInterval为日期添加持续时间

BKF*_*BKF 0 php datetime

可能重复:
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;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:找不到类'DateInterval'

为什么这样,如何在没有DateInterval的情况下修改日期?

Tre*_*non 12

原因

DateInterval 在手册页中提到的PHP 5.3中添加:

DateInterval类

(PHP 5> = 5.3.0)

PHP版本升级

您可以通过运行找出您正在使用的PHP版本phpversion():

echo 'Current PHP version: ' . phpversion();
Run Code Online (Sandbox Code Playgroud)

如果您运行的是低于5.3的版本,则需要升级才能使用DateInterval.

替代

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

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

向日期对象添加一天.


cor*_*024 7

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

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

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

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

  • +1因为它是迄今为止唯一的答案,它实际上试图给OP一个解决方案,而不仅仅是说明显而易见的 (2认同)