我正在构建一个任务管理器应用程序,用户可以在其中启动/停止任务。而且我想知道用户何时启动,何时停止以及任务运行了多长时间。
在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,这显然是错误的...为什么我会得到所有这些错误的行为?