PHP добавляет метку времени MySQL к существующей метке времени - PullRequest
0 голосов
/ 08 июля 2019

У меня есть отметки времени mysql, названные так:

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

Мне нужно получить разницу между текущим и приостановленным временем, а затем добавить эту сумму к конечному времени.

По сути, я пытаюсь достичь, когда событие находится в режиме паузы, оно обновляет значение $ paused_time в базе данных, поэтому, когда я возобновляю работу, мне нужно добавить время, так как оно было приостановлено, до времени окончания, которое увеличит его.

скажем, я поставил его на паузу 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 ]

1 голос
/ 08 июля 2019

Например:

$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);
0 голосов
/ 08 июля 2019

Можете ли вы попробовать это с 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;

Приветствие Hanns

...