BoyLee 2011-06-23 13:54:29 3703次浏览 4条回复 0 0 0
function time_ago($t, $f = 'd. F Y\, H:i') {
    $o = time () - $t;
    var_dump($o);
    //echo $o;
    switch ($o) {
        case ($o < 60) :
            return '<span id="locale_less_a_min">'.Yii::app()->session['Locale']['locale_less_a_min'].'</span>';
            break;
        case ($o <= 90) :
            return '<span id="locale_one_min">'.Yii::app()->session['Locale']['locale_one_min'].'</span>';
            break;
        case ($o <= 59 * 60) :
            return round ( $o / 60 ) . ' <span id="locale_mins">'.Yii::app()->session['Locale']['locale_mins'].'</span>';
            break;
        case ($o <= 60 * 60 * 1.5) :
            return '<span id="locale_one_hour">'.Yii::app()->session['Locale']['locale_one_hour'].'</span>';
            break;
        case ($o <= 60 * 60 * 24) :
            return round ( $o / 60 / 60 ) . ' <span id="locale_hours">'.Yii::app()->session['Locale']['locale_hours'].'</span>';
            break;
        case ($o <= 60 * 60 * 24 * 1.5) :
            return '<span id="locale_at_yesterday">'.Yii::app()->session['Locale']['locale_at_yesterday'].'</span> ' . date ( 'H:i', $t );
            break;
        default :
            //return date ( 'd. F Y' . ' At ' . 'H:i', $t );
            return date ( 'Y-m-d H:i', $t);

    }
}

这个函数是我问别人要的,但是发现一个奇怪的问题,当$o ==0也就是 ar_dump($o)显示int(0) 的时候,直接使用了 date('Y-m-d H:i', $t),也就是使用了 default来输出。当时间passed1秒之后,就变成了 <60那个输入。。。 这个是为什么呢? 我var_dump($o < 60) 输出为true但是一样是用的default

您需要登录后才可以回复。登录 | 立即注册