我们经常看到微博里的信息。
发布时间:刚刚
发布时间:1分钟前。
发布时间:今天8:8。
发布时间:2011年8月2日。
PHP中时间函数date与gmdate的区别和修改PHP的默认时区方法:传送门
就是这样的效果。好吧发布程序!

<?php
/** 时间格式化显示
 * @param $timestamp,标准时间戳
 */
function smc_time_since($timestamp) {
    $since = abs(time()-$timestamp);
	$timestamp=$timestamp+3600*8;
	$current_time = time();
    if(floor($since/3600)){
        if(gmdate('Y-m-d',$timestamp) == gmdate('Y-m-d',$current_time)){
			$output = floor($since/3600);
			$output.= '小时';
			// $output.= '今天 ';
			//$output.= gmdate('H:i',$timestamp);
        }else{
            if(gmdate('Y',$timestamp) == gmdate('Y',$current_time)){
                $output = gmdate('m月d日 H:i',$timestamp);
            }else{
                $output = gmdate('Y年m月d日 H:i',$timestamp);
            }
        }
    }else{
        if(($output=floor($since/60))){
            $output = $output.'分钟前';
        }else $output = '刚刚';
    }
    return $output;
}
?>

wordpress用下面这个函数

<?php
/** 时间格式化显示
 * @param $timestamp,标准时间戳
 */
function smc_time_since($timestamp) {
    $since = abs(time()-$timestamp);
    $gmt_offset = get_option('gmt_offset') * 3600;//获取wordpress的时区偏移值
    $timestamp += $gmt_offset; $current_time = mktime() + $gmt_offset;
    if(floor($since/3600)){
        if(gmdate('Y-m-d',$timestamp) == gmdate('Y-m-d',$current_time)){
            $output = '今天 ';
            $output.= gmdate('H:i',$timestamp);
        }else{
            if(gmdate('Y',$timestamp) == gmdate('Y',$current_time)){
                $output = gmdate('m月d日 H:i',$timestamp);
            }else{
                $output = gmdate('Y年m月d日 H:i',$timestamp);
            }
        }
    }else{
        if(($output=floor($since/60))){
            $output = $output.'分钟前';
        }else $output = '刚刚';
    }
    return $output;
}
?>

» 版权所有:YaoLei's Blog » PHP时间格式化函数文章发布了多久效果。
» 本文链接:http://www.yaolei.info/archives/44