在datetime中添加小时-分钟


add hour-minute to datetime

有人能帮我解决一个我被困了很长时间的问题吗?我正试图在php中添加时间,比如格式为h:ia01:00(一小时)、00:30(30分钟)、02:00(两小时)等。

由于我有('00:30','01:00','01:30','02:00')格式的小时,所以我已经有了时间。我试过这个

$interval="01:00";

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

$time=($now,strtotime(+$interval,$now));

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

您应该检查strtotime()文档,只需使用即可添加1小时

strtotime("+1 hour");

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

DateTime对象中还有一个名为"add"的方法,您可以使用它。

来自手册:

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

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

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

编辑:

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

 $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');

工作演示

你可以试试这样的东西:

$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,因为它更面向对象。

在任何情况下,我都建议不要为了约会而大发雷霆。这是非常危险的,因为有很多你无法预测的问题(比如bisextil秒等)

编辑:我想,如果你只是在操纵时间,而不是日期,那么分解字符串不是问题,主要问题是如果你使用日期。