CakePHP 3.6:无法将类Cake \ I18n \ FrozenTime的对象转换为int

时间:2019-01-24 13:56:44

标签: php cakephp time

我正在尝试检查index.ctp中的日期是否晚于一周前:

(((!isset($task->date_end) || is_null($task->date_end))? 
        strotime('now') : $task->date_end) > strtotime('-1 week'))

但是我收到此错误:

  

Cake \ I18n \ FrozenTime类的对象无法转换为int

要检查数据库中的日期是否有问题,我将它们全部更改为:2019-01-02 05:06:00.000000

1 个答案:

答案 0 :(得分:2)

当您将非整数与整数进行比较时,PHP的类型杂耍将尝试将前者转换为整数,并且FrozenTime对象不能转换为整数。

例如,可以完全使用日期对象,并使用它们提供的比较方法来避免这种脆弱的构造。

$result = true;
if ($task->date_end !== null) {
    $lastWeek = \Cake\I18n\Time::now()->subWeek(1);
    $result = $task->date_end->gt($lastWeek);
}

另请参见