添加小时 - 分钟到日期时间

时间:2013-06-25 12:03:35

标签: php datetime

任何人都可以帮助我解决我长时间陷入困境的问题,我正在尝试添加格式为h:ia的时间格式为01:00(一小时),{ {1}}(30分钟),00:30(两小时)等...在php。

因为我已经有了02:00这样的格式,而且我已经有了几个小时。 我试过这个

('00:30','01:00','01:30','02:00')

$interval="01:00";

$now=new DateTime('h:ia');

但它不起作用。  任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

你应该检查strtottime()文档,添加1小时,只需使用

strtotime("+1 hour");

您也可以使用time() + 60*60

您可以使用名为“add”的DateTime对象中的方法。

来自手册:

  

DateTime :: add - date_add - 为DateTime对象添加天,月,年,小时,分钟和秒数

您可以创建DateInterval对象并将时间间隔添加到现有DateTime对象。

要格式化日期,您可以在format()对象上使用DateTime方法。

<强>编辑:

简单的爆炸也可以解决你的问题。

 $interval="01:00";
 $xp = explode(":", $interval);
 $time=time() + (int)$xp[0] * 60*60 + (int)$xp[1]*60;
 echo date("h:ia", $time);

或更多面向对象的消息

$interval="01:00";
$now=new DateTime();
$now->add(new DateInterval("P0000-00-00T$interval:00"));
echo $now->format('h:ia');

Working demo

答案 1 :(得分:3)

你可以尝试类似的东西:

$interval = "01:00";
$yourInterval = new DateInterval('P0000-00-00T'.$interval.':00');
//Setting the date and seconds to "0"

$time = new DateTime('now');
//Or any other method to get your DateTime

$time->add($yourInterval);

我认为在所有情况下,您应该使用DateTime和DateInterval,或者strtotime() 我不确定混合它们。 我更喜欢使用DateTime和DateInterval,因为它更面向对象。

在所有情况下,我建议不要爆炸日期操作。这是非常危险的,因为你无法预测许多问题(比如bisexstil秒等......)

编辑: 我想如果你只是操纵时间而不是日期,爆炸你的字符串不是问题,主要问题是如果你使用日期。