所以我有以下代码来创建一个基于另一个的DateTime对象,它似乎效率低下。我敢肯定有一种方法可以简化这一行,但我似乎无法找到它。
$startTime = new DateTime('20:00');
$endTime = clone $startTime;
$endTime->add(new DateInterval('PT30M'));
答案 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,您正在寻找最有效的方法