将分钟添加到PHP Datetime以计算事件的开始/结束

Ste*_*ano 7 php dateinterval

我想用PHP计算一个事件的开始和结束日期时间.我得到了这个事件的开始和添加的持续时间以结束.所以我尝试了以下代码:

$startTime = $this->getStartTime();
$endTime = $this->getStartTime();

$endTime->add(new DateInterval('PT75M'));
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我将75分钟添加到开始时间,然后计算事件的结束.它有效,但它也编辑了开始时间.我在PHP文档中读到ADD方法编辑了被调用的对象,但我不明白它如何编辑startEdit变量.我没有在我在示例中编写的任何方法中使用引用,也没有在getStartTime函数中使用引用

Ben*_*aap 20

您必须为此创建一个新的DateTime实例,否则您将编辑对开始日期DateTime对象的原始引用.尝试这样的事情:

$endTime = clone $startTime;
$endTime->add(new DateInterval('PT75M'));
Run Code Online (Sandbox Code Playgroud)

  • $ endTime-> sub() (2认同)