不能在日期时间的 modify() 函数中使用变量。我收到错误:无法将类日期间隔的对象转换为字符串



我设法在PHP中动态加载和比较几个时间值。

现在我被困在这里:

$additional_time = $entry_start->diff($compare_from_timeformat);
$additional_time ->format("H:i");
$avaliabletime->modify('+1 hours');

我想用$avaliabletime替换+1,但如果我尝试这样的事情:

$avaliabletime->modify('+'.$additional_time.' hours');

我收到此错误:

可捕获的致命错误:无法将类 DateInterval 的对象转换为字符串

所以我现在有 2 个问题。

  1. 有没有办法将变量与修改部分一起使用?
  2. 我也可以在同一个字符串中添加分钟吗? 例如$avaliabletime->modify('+01:45 hours');

$additional_time是一个DateInterval对象,而不是一个DateTime对象或字符串。要按 DateInterval 表示的数量修改 DateTime 对象,请使用 DateTime::add()

$additional_time = $entry_start->diff($compare_from_timeformat);
$avaliabletime->add($additional_time);

如果要添加额外的时间,则可以使用DateTime::modify()

$additional_time = $entry_start->diff($compare_from_timeformat);
$avaliabletime->add($additional_time);
$avaliabletime->modify('+45 minutes');

最新更新