当尝试添加到DateTime时,在非对象上调用成员函数add()


Call to a member function add() on a non-object when trying to add to DateTime

我以前对此有一个问题,它得到了回答和工作,但现在我得到了一些不同的代码相同的错误,我正在尝试不同的结果。

我正在尝试添加1分30秒到当前日期时间戳:

我的代码是:
<?php
ini_set("display_errors", 1); error_reporting(E_ALL); 
date_default_timezone_set('America/Denver');
echo $date = (new DateTime())->format('Y-m-d H:i:s'); //This echos the correct DateTime in SQL format so I can UPDATE and SELECT easily
echo $datestuff = $date->add(new DateInterval("PT1H"))->format('Y-m-d H:i:s'); //This is where the error is when attempting to add 1 hour
?>

问题——

我如何在$date中添加1.5分钟并以相同的格式结束?

谢谢!

试试这个版本的代码,它似乎可以做你想做的事情:

<?php
ini_set("display_errors", 1); error_reporting(E_ALL); 
date_default_timezone_set('America/Denver');
$date = new DateTime();
$datestuff = $date->add(new DateInterval("PT1H"))->format('Y-m-d H:i:s');
echo $datestuff;

重要的笔记:

  1. 通常不希望回显赋值语句。相反,最好是分配变量,然后根据需要回显它们的值。
  2. 因为你正在使用$date->add, $date变量应该包含一个DateTime对象。使用"format"将该对象转换为字符串,因此您希望最后执行此操作。