PHP вычесть секунд из 20 минут

1

У меня базовое время, начинающееся через 20 минут

00:20:00

я хочу вычесть 800 секунд с этого времени, я пытался использовать strtotime ("-800 секунд"), но это, похоже, не работает.

Есть ли еще более простой способ достичь этого?

  • 0
    К чему относится 00:20:00 ? Другими словами, что вы пытаетесь построить?
  • 0
    Это будет просто текстовая гоночная игра, в основном базовое время составляет 20 минут, чтобы сделать 5 кругов. Чем лучше машина, тем больше секунд вы вычтете.
Показать ещё 1 комментарий
Теги:
time

2 ответа

2

Другой вариант - использовать 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

демонстрация

1

Вы можете сделать что-то вроде этого:

$time = "00:20:00";
$unixdatetime = strtotime($time) - 800;
echo strftime("%M:%S",$unixdatetime);  // 06:40
  • 0
    Возможно, удаление %I из strftime() будет лучше для результата? Так как они ищут минут и ниже? В любом случае, хорошее решение :)
  • 0
    О да, хороший улов. Обновил мой ответ. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню