30分钟后创建dateTime对象的最佳方法是?

时间:2016-05-12 00:12:49

标签: php datetime

所以我有以下代码来创建一个基于另一个的DateTime对象,它似乎效率低下。我敢肯定有一种方法可以简化这一行,但我似乎无法找到它。

    $startTime = new DateTime('20:00');
    $endTime = clone $startTime;
    $endTime->add(new DateInterval('PT30M'));

2 个答案:

答案 0 :(得分:4)

您只需使用DateTimeImmutable即可轻松完成此操作:

$startTime = new DateTimeImmutable('20:00');
$endTime = $startTime->add(new DateInterval('PT30M'));

请参阅:http://php.net/manual/en/class.datetimeimmutable.php

  

此类的行为与DateTime相同,只是它从不修改自身,而是返回一个新对象。

答案 1 :(得分:2)

使用PHP7,您可以使用

组合克隆和添加方法
$startTime = new DateTime('20:00');
$endTime = (clone $startTime)->add(new DateInterval('PT30M'));

但是对于PHP 5,您正在寻找最有效的方法