duandi2853
2019-07-07 21:05
浏览 129
已采纳

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

I have mysql timestamps named the following:

$end_time = $row['end_time'];
$paused_time = $row['paused_time'];
$current_time = date("Y-m-d H:i:s");

i need to get the difference between the current time and the paused time, then add that total to the end time.

Essentially what im trying to achieve is when an event is paused, it updates the $paused_time in the database, so when i resume again i need to add the time since it was paused to the end time which will increase it.

say i paused it 1 hour ago, the difference between $paused_time and $current_time is 1 hour, so $end_time will be $end_time + 1 hour which i will then update the database replacing the current end time.

Everything i try is such a mess and not really achieving my goal so i would appreciate how to go about doing this.

$datetime1 = new DateTime($paused_time);
$datetime2 = new DateTime($current_time);
$interval = $datetime1->diff($datetime2);
// add $interval to $end_time??

Many thanks and hope i explained it clear enough

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • drmlxgmqn18198265 2019-07-07 21:13
    已采纳

    For example:

    $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);
    
    已采纳该答案
    打赏 评论
  • duandiaoqian5795 2019-07-07 21:20

    Can you try it with strtotime()? You will get milliseconds out of it and you can convert it back to any unit of time you wish.

    $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;
    

    Cheers Hanns

    打赏 评论

相关推荐 更多相似问题