За последние 24 часа нас посетили 37120 программистов и 7905 роботов. Сейчас ищут 1817 программистов ...

Как получить разницу между датами в минутах

Тема в разделе "PHP для новичков", создана пользователем sound, 28 авг 2023.

  1. sound

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

    С нами с:
    6 янв 2017
    Сообщения:
    26
    Симпатии:
    1
    Код (Text):
    1. $current_value='2022-08-27 10:49:23';
    2.             $date = new DateTime($current_value);
    3.             echo $date->diff(new DateTime)->format(' прошло %I')."<br>";
    Делаю так, в результате получаю например 28, что совсем не реальное количество минут прошедших с даты 2022-08-27 10:49:23
    Как вывести реальное число минут ?
     
  2. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    PHP:
    1. $value = new DateTime('2022-08-27 10:49:23');
    2. $now = new DateTime();
    3.  
    4. echo ($now->getTimestamp() - $value->getTimestamp())/60;
    https://phpize.online/s/lW
     
    sound нравится это.
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    947
    Симпатии:
    147
    Там всё-таки floor() накинуть ещё.
     
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    floor() возвращает float. чтобы избежать нежданчиков, лучше уж intval()
    --- Добавлено ---
    Или использовать класс Carbon (оболочка над DateTime) и его метод diffInMinutes() ;)
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    Или написать функцию-хелпер
    PHP:
    1. function diffInMinutes($t1, $t2)
    2. {
    3.     $d = $t2->diff($t1, true);
    4.     return ($d->days * 24 + $d->h) * 60 + $d->i;
    5. }