我的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
我从这个方法或我尝试的类似方法中找回了空值
您如何解决这个问题?
谢谢,感谢您的见解
答案 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");
以下是使用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");
答案 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");