【问题标题】:PHP DateTime: Call to a member function format() on booleanPHP DateTime:在布尔值上调用成员函数格式()
【发布时间】:2016-07-04 09:42:36
【问题描述】:

我正在尝试使用 DateTime 类来查看某个时间是否已经过去。但是,当使用 DateTime 类时,它会失败...

这是我从数据库中获取的字符串:

$timeToCheck = $users[$i]["lastLoggedIn"] . " " . $users[$i]["lastTimeOn"];

一个例子是:2016-03-09 01:32:44

然后我使用以下内容:

$dbTimeStamp = date_create_from_format('Y-m-d H:i:s', $timeToCheck);

$timeStamp = new DateTime($dbTimeStamp->format('Y-m-d H:i:s'));

$timeLimit = $timeStamp->add(new DateInterval("PT24H"));

$timeNow = new DateTime();

我收到以下错误:调用 $timeStamp = new DateTime($dbTimeStamp->format('Y-m-d H:i:s')); 上布尔值的成员函数 format()

数据库中的日期格式与我尝试创建的格式相同,例如 2016-03-09 01:32:44

我看不出我做错了什么?

【问题讨论】:

  • 那么,$timeToCheck 的值是多少?
  • 例如 2016-03-09 01:32:44。我确实放了一个,但在我显示$timeToCheck的代码之后可能应该放它...
  • 如果这就是价值,那你为什么要使用strtotime()
  • 测试它是否有任何不同,忘记取出它,因为它没有。我也试过$dbTimeStamp = DateTime::createFromFormat('Y-m-d H:i:s', $timeToCheck);,但没用。

标签: php


【解决方案1】:

我尝试将$timeToCheck 设置为$timeToCheck = "2016-08-21 01:22:18";,但没有收到我遇到的错误。

因此,由于创建日期和时间字符串的两个来源在数据库中按日期和时间分开,因此我对其进行了更改,因此它在一个字符串中更新了所有内容,现在它可以工作了。

我使用了以下内容:

$dateTime = date("Y-m-d H:i:s");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    相关资源
    最近更新 更多