任何人都可以帮助我解决我长时间陷入困境的问题,我正在尝试添加格式为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');
但它不起作用。 任何帮助将不胜感激。
答案 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');
答案 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秒等......)
编辑: 我想如果你只是操纵时间而不是日期,爆炸你的字符串不是问题,主要问题是如果你使用日期。