CakePHP 3.6: объект класса Cake \ I18n \ FrozenTime не может быть преобразован в int - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь проверить, не позднее ли дата, чем неделя назад, в 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 голосов
/ 24 января 2019

Когда вы сравниваете нецелое число с целым числом, жонглирование типов в PHP будет пытаться преобразовать первое в целое число, и FrozenTime объекты не могут быть преобразованы в целые числа.

Вы можете избежать этой хрупкой конструкции, полностью используя объекты даты, и, например, использовать предоставленные ими методы сравнения.

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

Смотри также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...