У меня базовое время, начинающееся через 20 минут
00:20:00
я хочу вычесть 800 секунд с этого времени, я пытался использовать strtotime ("-800 секунд"), но это, похоже, не работает.
Есть ли еще более простой способ достичь этого?
Другой вариант - использовать DateTime и DateInterval.
Создайте объект DateTime
, добавьте к нему 20 минут и вычитайте из него 800 секунд с помощью DateInterval
. Затем получите разницу между измененным объектом DateTime
и новым объектом DateTime
.
Это даст вам DateInterval
который имеет формат для форматирования интервала.
Например:
$dateTime = new DateTime();
echo $dateTime
->add(new DateInterval('PT20M'))
->sub(new DateInterval('PT800S'))
->diff(new DateTime())->format("%I:%S");
Это приведет к:
6:40
Вы можете сделать что-то вроде этого:
$time = "00:20:00";
$unixdatetime = strtotime($time) - 800;
echo strftime("%M:%S",$unixdatetime); // 06:40
%I
из strftime()
будет лучше для результата? Так как они ищут минут и ниже? В любом случае, хорошее решение :)
00:20:00
? Другими словами, что вы пытаетесь построить?