Mystic
Mystic

Reputation: 157

PHP add mysql timestamp to existing timestamp

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

Upvotes: 0

Views: 48

Answers (2)

hfcgII
hfcgII

Reputation: 1

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

Upvotes: 0

Mike Foxtech
Mike Foxtech

Reputation: 1651

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

Upvotes: 1

Related Questions