Я создаю приложение диспетчера задач, в котором пользователь может запускать / останавливать задачу.И я хочу знать, когда пользователь запустил его, когда остановил и как долго выполнялась задача.
В 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, что явно неверно ... Почему я получаю все эти ошибочные поведения?