如果时差大于50分钟,则显示消息-php
基本上,我得到的是当前时间和数据库时间之间的时差如果时差大于50分钟,则显示消息-php,php,datetime,time,Php,Datetime,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 - $month
$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));
然后以分钟、小时、天等为单位显示时间差
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 = '';
}
秒、日和月的情况相同。。然后显示总时差
$timediff = $time1.$time2.$time3.$time4.' ago';
如果我的分钟数大于50,我需要向其他人显示另一条消息
if($time3 > 50 || $time4 > 1 || $time3 > 1 || $time2 > 1 || $time1 > 1)
{
$msg = 'greater';
}
else
{
$msg = 'lesser';
}
问题是-分钟、小时、天存储在单独的变量中。假设我的时差是55分钟,这就是
55 minutes ago
如果条件正确,我的条件将变为。如果我的时差是1小时2分钟
1 hour 2 minutes ago
我的情况再次变为,如果情况仅考虑2分钟,即小于50分钟,则应转到else循环。如何设置这些时间差的条件您可以使用PHP中的DateTime类:
$dt=new\DateTime(“@143448947”)//unix时间戳
$diff=$dt->diff(new\DateTime(),true);
echo$diff->days*1440+$diff->h*60+$diff->i//绝对分差
你为什么不在转换之前把你的条件写下来呢
$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';
}
即使时差为
1小时2分钟
,也可以正常工作没有if循环。为什么不使用时间戳呢?我要说的是,if语句检查if条件是否成立,并执行if分支或(如果存在)else分支。