天天看點

php中英文時間友好顯示|英文時間友好顯示

/**
 * 友好時間顯示
 * @param $time
 * @param $lang 0預設隻傳回中文,1傳回英文,其他值傳回中英數組
 * @return bool|string
 */
function fdate($time,$lang = 0)
{
    if (!$time)
        return false;
    $enMonth =array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    $fdate = array();
    $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[0] = '剛剛';
        $fdate[1] = 'just';
    } else {
        switch ($d) {
            case $d < $atd:
                $fdate[0] = date('Y年m月d日', $time);
                $fdate[1] = date('d ', $time).$enMonth[intval(date('m',$time))].date(' Y', $time);
                break;
            case $d < $td:
                $fdate[0] = '後天' . date('H:i', $time);
                $fdate[1] = date('H:i', $time).' after tomorrow';
                break;
            case $d < 0:
                $fdate[0] = '明天' . date('H:i', $time);
                $fdate[1] = 'Tomorrow '.date('H:i', $time);
                break;
            case $d < 60:
                $fdate[0] = $d . '秒前';
                $fdate[1] = $d.' seconds ago';
                break;
            case $d < 3600:
                $fdate[0] = floor($d / 60) . '分鐘前';
                $fdate[1] = floor($d/60) .' minutes ago';
                break;
            case $d < $dd:
                $fdate[0] = floor($d / 3600) . '小時前';
                $fdate[1] = floor($d / 3600) . ' hours ago';
                break;
            case $d < $yd:
                $fdate[0] = '昨天' . date('H:i', $time);
                $fdate[1] = '1 day(s) ago, '.date('H:i', $time);
                break;
            case $d < $byd:
                $fdate[0] = '前天' . date('H:i', $time);
                $fdate[1] = '2 day(s) ago, '.date('H:i', $time);
                break;
            case $d < $md:
                $fdate[0] = date('m月d日 H:i', $time);
                $fdate[1] = date('H:i',$time).' on '.$enMonth[intval(date('m',$time))].date(' d', $time);
                break;
            case $d < $ld:
                $fdate[0] = date('m月d日', $time);
                $fdate[1] = $enMonth[date('m',$time)].date(' d ', $time).'th';
                break;
            default:
                $fdate[0] = date('Y年m月d日', $time);
                $fdate[1] = date('d ', $time).$enMonth[intval(date('m',$time))].date(' Y', $time);
                break;
        }
    }
    if($lang == 0){
        return $fdate[0];
    }else if($lang == 1){
        return $fdate[1];
    }else{
        return $fdate;
    }    
}