За последние 24 часа нас посетили 21890 программистов и 987 роботов. Сейчас ищут 653 программиста ...

Как посчитать минуты от даты в будущем до данного момента

Тема в разделе "PHP для новичков", создана пользователем victor_orlov, 10 июл 2020.

  1. victor_orlov

    victor_orlov Активный пользователь

    С нами с:
    16 июл 2019
    Сообщения:
    41
    Симпатии:
    0
    Имеется функция -
    Код (Text):
    1. function lefttotime ($dateleft) {
    2.  
    3. $now = time(); - тут временная метка юникс
    4.  
    5. $futuretime = strtotime($dateleft); - тут временная метка даты передаваемой
    6.  
    7. $newtime = $futuretime - $now; - тут отнимается от будущей даты дата на данную секунду
    8.  
    9. $minutes = floor($newtime/60); - тут считаются минуты неправильно
    10.  
    11. $hours = $newtime/3600; - тут считаются часы
    12.  
    13. $hours = floor($hours);
    14.  
    15. $result = [$hours, $minutes];
    16.  
    17. return $result;
    18.  
    19. }
    Мне сказали что у меня часы посчитаны правильно, а минуты нет, в чем ошибка кода с минутами. Можно конкретно сказать что от чего и как?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    $newtime - что? если это разница двух временнЫх меток, то назови $diff или типа того

    ошибка в том, что ты считаешь разницу в часах И разницу в минутах не вычитая одно из другого.
    смотри на простой пример: какова разница между 13:30 и 12:00? судя по твоей логике, разница составляет 1час 90 минут. а любой непрограммист скажет что это 1 час 30 мин.
    компрендо?
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Если для общего развития, то вспомни, как в школе делали деление с остатком.

    Если для реального проекта, то https://php.net/date_diff