Php 如何在此日期时间字符串的时间上添加一小时?

Php 如何在此日期时间字符串的时间上添加一小时?,php,Php,下面是我正在使用的日期时间字符串的示例: Tue May 15 10:14:30 +0000 2012 下面是我尝试在上面加上一个小时: $time = 'Tue May 15 10:14:30 +0000 2012'; $dt = new DateTime($time); $dt->add(new DateInterval('P1h')); 但是第二行给出了无法转换的错误 谢谢。您应该在时间规范部分之前添加一个T: $time = 'Tue May 15 10:14:30 +0000

下面是我正在使用的日期时间字符串的示例:

Tue May 15 10:14:30 +0000 2012
下面是我尝试在上面加上一个小时:

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('P1h'));
但是第二行给出了无法转换的错误


谢谢。

您应该在时间规范部分之前添加一个
T

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('PT1H'));
请参阅
DateInterval
文档:

格式以字母p开头,表示“期间”。每个持续期间由一个整数值表示,后跟一个期间指示符。如果持续时间包含时间元素,则规范的该部分前面会有字母T

(增加强调)

使用

$time = 'Tue May 15 10:14:30 +0000 2012';
$time = strtotime($time) + 3600; // Add 1 hour
$time = date('D M j G:i:s O Y', $time); // Back to string
echo $time;

以前的答案很有用。但是,我通常在外部托管的网站中使用datetime modify。查看更多信息。 根据提议的代码,其工作原理如下:

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->modify('+ 1 hour');
对于那些不使用面向对象的线程,只需这样使用它(第一行DateTime只是为了给这个线程带来一些新内容,我使用它来检查服务器时间):

最好的

$dt = new DateTime("@".$_SERVER['REQUEST_TIME']);  // convert UNIX epoch to PHP DateTime
$dt = date_modify($dt, "+1 hour");