日期格式的php字符串,添加12小时

时间:2013-03-05 16:18:33

标签: php datetime strtotime

我的php数组中有string个对象

“2013-03-05 00:00:00 + 00”

我想在PHP中添加12个小时的条目,然后以相同的格式将其保存回字符串

我认为这涉及将字符串转换为日期对象。但我不确定日期对象有多聪明,如果我需要告诉它格式化参数,或者它是否应该只取字符串

$date = new DateTime("2013-03-05 00:00:00+00");
$date->add("+12 hours");
//then convert back to string or just assign it to a variable within the array node

我从这个方法或我尝试的类似方法中找回了空值

您如何解决这个问题?

谢谢,感谢您的见解

4 个答案:

答案 0 :(得分:20)

add()更改为modify()add()需要一个DateInterval对象。

<?php
$date = new DateTime("2013-03-05 00:00:00+00");
$date->modify("+12 hours");
echo $date->format("Y-m-d H:i:sO");

See it in action

以下是使用DateInterval对象的示例:

<?php
$date = new DateTime("2013-03-05 00:00:00+00");
$date->add(new DateInterval('PT12H'));
echo $date->format("Y-m-d H:i:sO");

See it in action

答案 1 :(得分:2)

更改此行

$date->add("+12 hours");

$date->add(new DateInterval("PT12H"));

这将为您的日期添加12小时

查看DateInterval constructor页面,了解如何构建DateInterval字符串

答案 2 :(得分:1)

使用此功能添加小时数,

$date1= "2014-07-03 11:00:00";
$new_date= date("Y-m-d H:i:s", strtotime($date1 . " +3 hours"));
echo $new_date;

答案 3 :(得分:0)

如果你有动态间隔,这种方式可以避免$ dateDiff格式错误:

$dateDiff = "12 hours";
$interval = DateInterval::createFromDateString($dateDiff);
$date = new DateTime("2013-03-05 00:00:00+00");
$date->add($interval);
echo $date->format("Y-m-d H:i:sO");