php - Cakephp:时间,差异没有按预期工作
问题描述
我正在构建一个任务管理器应用程序,用户可以在其中启动/停止任务。而且我想知道用户何时启动它,何时停止它以及任务运行了多长时间。
在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 这显然是错误的......为什么我会得到所有这些错误的行为?
解决方案
推荐阅读
- javascript - 轮播内容出现然后消失
- openoffice.org - 如何在 Open Office writer 中全选
- spring-boot - 在 Spring Boot 中正常关闭时连接池关闭错误
- r - openNLPdata中的R错误中的实体识别
- python - 如何解决“重新索引仅对唯一值索引对象有效”错误
- javascript - 主题之间的 jQuery 过渡(切换主题时)
- css - Css 未使用 express/handlebars 加载到页面上
- kubernetes - 无法重用现有的持久卷 (GlusterFS)
- c++ - 在 C++ 中允许使用 memset
- r - 在ggplot2中使用geom_sf时使用annotation_raster放置图像