Php 在另一个对象创建30分钟后创建dateTime对象的最佳方法?

Php 在另一个对象创建30分钟后创建dateTime对象的最佳方法?,php,datetime,Php,Datetime,因此,我有以下代码来基于另一个对象创建DateTime对象,这似乎效率低下。我确信有一种方法可以把它简化为一行,但我似乎找不到它 $startTime = new DateTime('20:00'); $endTime = clone $startTime; $endTime->add(new DateInterval('PT30M')); 使用PHP7,您可以使用 $startTime = new DateTime('20:00'); $endTime = (c

因此,我有以下代码来基于另一个对象创建DateTime对象,这似乎效率低下。我确信有一种方法可以把它简化为一行,但我似乎找不到它

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

使用PHP7,您可以使用

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

但是对于PHP5,您正在寻找使用PHP7最有效的方法,您可以使用

$startTime = new DateTime('20:00');
$endTime = (clone $startTime)->add(new DateInterval('PT30M'));
但是对于PHP5,您正在寻找最有效的方法

您可以简单地使用DateTimeImmutable来轻松实现:

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

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

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

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

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


20点是分和秒吗?@PedroLobito,是小时和分。那部分很好用。上述代码有效。我只是觉得有更好的方法来优化它。老实说,我看不出有改进的余地。如果你用这个解释你的目标,它可能会帮助我们。为什么你认为它是低效的,它仅仅是3条简单的线。code@MarkBaker我只是觉得应该有一个方法,只返回递增的时间,而不改变原始值。如果是这样的话,它将减少33%的方法调用量。是20:00分和秒吗?@PedroLobito是小时和分钟。那部分很好用。上述代码有效。我只是觉得有更好的方法来优化它。老实说,我看不出有改进的余地。如果你用这个解释你的目标,它可能会帮助我们。为什么你认为它是低效的,它仅仅是3条简单的线。code@MarkBaker我只是觉得应该有一个方法,只返回递增的时间,而不改变原始值。如果是这样的话,它将减少33%的方法调用量。这令人沮丧。谢谢,这就是我想要的答案!那太令人沮丧了。谢谢,这就是我想要的答案!令人惊叹的谢谢我知道一定有更好的方法。知道这些很有用!谢谢我知道一定有更好的办法,知道这一点很有用