Display message if time difference exceeds 50 minutes - php

Basically I am getting the time difference between the current time and the database time.

  $cur_time = time();
  $db_time = $rs[$k]['update_time'];
  $diff = abs($cur_time - $db_time);

  $months  = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); 
  $days    = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
  $hours   = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); 
  $minutes  = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); 
  $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60));

      

Then to display the time difference in minutes, hours, days, etc.

if($hours!= 0)
  {
        if($hours== 1)
        {
            $time2 = $hours.' hour, ';
        }
        else
        {
            $time2 = $hours.' hours, ';
        }

  }
  else
  {
        $time2 = '';
  }
  if($minutes!= 0)
  {
        if($minutes== 1)
        {
            $time3 = $minuts.' minute, ';
        }
        else
        {
            $time3 = $minuts.' minutes, ';
        }

  }
  else
  {
        $time3 = '';
  }

      

the same for seconds, days and months .. Then, to display the total time difference,

$timediff = $time1.$time2.$time3.$time4.' ago';

      

If my minutes are more than 50, I need to show another message more.

if($time3 > 50 || $time4 > 1 || $time3 > 1 || $time2 > 1 || $time1 > 1)
{
    $msg = 'greater';
}
else
{
    $msg = 'lesser';
}

      

Problem - minutes, hours, days are stored in a separate variable. Suppose if the time difference is 55 minutes, which shows

55 minutes ago

      

my condition will be if the condition is true. And if my time difference is 1 hour 2 minutes

 1 hour 2 minutes ago

      

my condition will again be if the condition , given only 2 minutes, which is less than 50 minutes, rather it should go into a different cycle. How to set conditions for these temporary differences

+3


source to share


2 answers


Why don't you translate your condition before conversion?

$cur_time = time();
$db_time = $rs[$k]['update_time'];
$diff = abs($cur_time - $db_time);

if($diff > 3000) // 3600 is 1 hour and 3000 is 50 minutes
{
     $msg = 'greater';
}
else
{
     $msg = 'lesser';
}

      



Even if the time difference 1 hour 2 minutes

, it works fine

+4


source


You can use the DateTime class from PHP:



$dt = new \DateTime('@1434438947'); //unix timestamp
$diff = $dt->diff(new \DateTime(), true);

echo $diff->days * 1440 + $diff->h * 60 + $diff->i; //minutes difference absolute

      

+4


source







All Articles