在做微博项目时,有一个时间处理上的问题。
参考新浪微博,每当发表微博后,会有精确至秒的时间显示。
当碰到此类问题时,可以做如下处理:
function time ($time) {
//$time为微博发表时间
//当前时间
$now = time();
//今天零时零分零秒
$today = strtotime(date('y-m-d', $now));
//传递时间与当前时秒相差的秒数
$diff = $now+1 - $time;
$str = '';
switch ($time) {
case $diff < 60 :
$str = $diff . '秒前';
break;
case $diff < 3600 :
$str = floor($diff / 60) . '分钟前';
break;
case $diff < (3600 * 8) :
$str = floor($diff / 3600) . '小时前';
break;
case $time > $today :
$str = '今天 ' . date('H:i', $time);
break;
default :
$str = date('Y-m-d H:i:s', $time);
}
return $str;
}
将其封装为一个方法,每当需要处理时间时只需调用即可。