【发布时间】:2015-06-16 07:09:46
【问题描述】:
基本上我得到了当前时间和数据库时间之间的时差。
$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
我的条件再次进入 if 条件,仅考虑不到 50 分钟的 2 分钟,而不是应该进入 else 循环。如何为这些时差设置条件
【问题讨论】:
-
不存在 if 循环。
-
为什么不使用时间戳?
-
我会说 if 语句 检查 if 条件 是否成立并执行 if 分支 或(如果存在)else 分支.