我有名为以下的mysql时间戳:
$end_time = $row['end_time'];
$paused_time = $row['paused_time'];
$current_time = date("Y-m-d H:i:s");
我需要获取当前时间和暂停时间之间的时差,然后将其加到结束时间。
本质上,我试图实现的是在事件暂停时更新数据库中的$ paused_time,因此当我再次恢复时,我需要添加自暂停以来的时间到结束时间,这会增加它。 / p>
假设我在1小时前将其暂停,$ paused_time和$ current_time之差为1小时,因此$ end_time将为$ end_time + 1小时,然后我将更新数据库以替换当前结束时间。
我尝试的所有事情都是一团糟,并没有真正实现我的目标,因此我将很高兴如何进行此操作。
$datetime1 = new DateTime($paused_time);
$datetime2 = new DateTime($current_time);
$interval = $datetime1->diff($datetime2);
// add $interval to $end_time??
非常感谢,希望我解释得足够清楚
答案 0 :(得分:1)
例如:
$end_time = "2019-07-07 14:09:07";
$paused_time = "2019-07-07 13:09:07";
$current_time = date("Y-m-d H:i:s");
$datetime1 = new DateTime($paused_time);
$datetime2 = new DateTime($current_time);
$datetime3 = new DateTime($end_time);
$interval = $datetime1->diff($datetime2);
$sumDateTime = $datetime3->add($interval);
答案 1 :(得分:0)
您可以使用strtotime()尝试吗?您将获得毫秒数,并且可以将其转换回所需的任何时间单位。
$end_time = strtotime($row["end_time"]);
$paused_time = strtotime($row["paused_time"]);
$current_time = time();
$interval = $end_time - $paused_time;
$add_interval_to_end_time = $end_time + $interval;
欢呼 汉斯