datetime — добавление продолжительности времени вместе с переполнением стека

У меня есть форма, которая позволяет людям вводить разные отрезки времени, например:

input.time1 = "19:00"input.time2 = "2:30"input.time3 = "0:30"

Мне нужно сложить эти 3 раза вместе, а затем вычесть это из базового значения, которое у меня есть (21:00).

$base = "21:00"

Тогда мне нужно что-то вроде этого:

$total = $time1 + $time2 + $time3; //equals 22:00
$base  = "21:00"; // set value
$diff  = $base - $total; // 21:00 - 22:00 = -1:00(mm:ss)

Надеюсь, что все это имеет смысл, пожалуйста, дайте мне знать, если мне нужно объяснить что-то более подробно. Спасибо!

-1

Решение

Чтобы добавить 3 раза, вы должны сделать

<?php
$time = "19:00";
$time2 = "2:30";
$time3 = "0:30";
$secs = strtotime($time2)-strtotime("00:00");
$secs1 = strtotime($time3)-strtotime("00:00");
$result = date("H:i",strtotime($time)+$secs+$secs1);
echo $result;

Сейчас $result будет иметь значение addd,

Чтобы вычесть другое значение из добавленной стоимости

$base  = "21:00";
$TimeStart = strtotime($result);
$TimeEnd = strtotime($base);
$Difference = ($TimeEnd - $TimeStart);
echo gmdate("H:i", $Difference);
-1

Другие решения

$base = strtotime('21:00');
$total = strtotime($time1)+strtotime($time2);+strtotime($time3)
$diff = date("H:i", strtotime("$total - $base"));

Надеюсь это поможет…

-1

Быстрый и грязный пример метода «сделай сам»:

function string_to_int($time) {
list($minutes, $seconds) = explode(':', $time);
return $minutes * 60 + $seconds;
}

function int_to_string($seconds) {
return sprintf('%d:%02d', floor($seconds / 60), $seconds % 60);
}

$duration = string_to_int('19:00') + string_to_int('2:30') + string_to_int('0:30');
echo int_to_string($duration);

Вы конвертируете xx:yy до целого числа целых секунд, суммируйте их, затем отформатируйте обратно xx:yy для удобочитаемого вывода.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector