PHP将mysql时间戳添加到现有时间戳

时间:2019-07-07 21:05:25

标签: php mysql datetime timestamp

我有名为以下的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??

非常感谢,希望我解释得足够清楚

2 个答案:

答案 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;

欢呼 汉斯