刚刚,一年前,时间判断代码重写

function mdate($time = NULL) {

    $text '';
    $time $time === NULL || $time > time() ? time() : intval($time);
    $t = time() - $time//时间差 (秒)
    $y date('Y'$time)-date('Y', time());//是否跨年
    switch($t){
     case $t == 0:
       $text '刚刚';
       break;
     case $t < 60:
      $text $t '秒前'// 一分钟内
      break;
     case $t < 60 * 60:
      $text floor($t / 60) . '分钟前'//一小时内
      break;
     case $t < 60 * 60 * 24:
      $text floor($t / (60 * 60)) . '小时前'// 一天内
      break;
     case $t < 60 * 60 * 24 * 3:
      $text floor($time/(60*60*24)) ==1 ?'昨天 ' date('H:i'$time) : '前天 ' date('H:i'$time) ; //昨天和前天
      break;
     case $t < 60 * 60 * 24 * 30:
      $text date('m月d日 H:i'$time); //一个月内
      break;
     case $t < 60 * 60 * 24 * 365&&$y==0:
      $text date('m月d日'$time); //一年内
      break;
     default:
      $text date('Y年m月d日'$time); //一年以前
      break;
    }
        
    return $text;
}
 
 
/**
 * 友好时间显示
 * @param $time
 * @return bool|string
 */
function friend_date($time)
{
    if (!$time)
        return false;
    $fdate '';
    $d = time() - intval($time);
    $ld $time mktime(0, 0, 0, 0, 0, date('Y')); //得出年
    $md $time mktime(0, 0, 0, date('m'), 0, date('Y')); //得出月
    $byd $time mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')); //前天
    $yd $time mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); //昨天
    $dd $time mktime(0, 0, 0, date('m'), date('d'), date('Y')); //今天
    $td $time mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')); //明天
    $atd $time mktime(0, 0, 0, date('m'), date('d') + 2, date('Y')); //后天
    if ($d == 0) {
        $fdate '刚刚';
    else {
        switch ($d) {
            case $d $atd:
                $fdate date('Y年m月d日'$time);
                break;
            case $d $td:
                $fdate '后天' date('H:i'$time);
                break;
            case $d < 0:
                $fdate '明天' date('H:i'$time);
                break;
            case $d < 60:
                $fdate $d '秒前';
                break;
            case $d < 3600:
                $fdate floor($d / 60) . '分钟前';
                break;
            case $d $dd:
                $fdate floor($d / 3600) . '小时前';
                break;
            case $d $yd:
                $fdate '昨天' date('H:i'$time);
                break;
            case $d $byd:
                $fdate '前天' date('H:i'$time);
                break;
            case $d $md:
                $fdate date('m月d日 H:i'$time);
                break;
            case $d $ld:
                $fdate date('m月d日'$time);
                break;
            default:
                $fdate date('Y年m月d日'$time);
                break;
        }
    }
    return $fdate;
}
posted @ 2018-11-05 11:38  LvFish  阅读(183)  评论(0编辑  收藏  举报