Cakephp: время, diff не работает должным образом - PullRequest
0 голосов
/ 18 марта 2019

Я создаю приложение диспетчера задач, в котором пользователь может запускать / останавливать задачу.И я хочу знать, когда пользователь запустил его, когда остановил и как долго выполнялась задача.

В appcontroller.php я установил этот часовой пояс:

date_default_timezone_set("Europe/Athens");

Но в taskscontroller.php когда я сохраняю время запуска задачи:

$now = FrozenTime::now();
$task->date_start = $now;

Оно сохраняется на 2 часа вперед в базе данных (поле в базе данных имеет тип метки времени). Так что, когда я нажимаю начать с 9: 00: 00 Я вижу, что сохраняется в базе данных как 11:00:00.То же самое, когда я нажимаю «Стоп»:

    $now = FrozenTime::now(); 
    $task->date_end = $now;

И снова он сохраняется на 2 часа вперед.Но в моем приложении, когда пользователь нажимает «Стоп», я хочу рассчитать время выполнения задачи.Итак, я рассчитываю так:

$task->total_minutes = ($now->diff($task->date_start))->format('%i'); //minutes

Но хотя date_start: 2019-03-18 11:43:47 и date_end: 2019-03-18 11: 45: 33

Я получаю total_minutes: 58, что явно неверно ... Почему я получаю все эти ошибочные поведения?

...