PHP将时间戳转换为刚刚、N分钟前、今天几点几分、昨天几点几分...

使用PHP语言,将时间戳转换为类似新浪微博的时间的表示方法。
要求转换规则:

  • 1分钟以内: 刚刚

  • 1小时以内:N分钟前

  • 当天以内:今天 N点N分(如:今天 10:10)

  • 昨天时间:昨天 N点N分(如:昨天 10:10)

  • 当年以内:N月N日 N点N分(如:11月22日 10:11)

  • 今年以前:N年N月N日 N点N分(如:2012年12月21日 22:23)


已邀请:
匿名用户

匿名用户

赞同来自:

自定义函数:
<?php
date_default_timezone_set('PRC'); // 设置时区,如果已经设置可以删除
function timeFormat( $timestamp ) {
    $curTime = time();
    $space = $curTime - $timestamp;
    if($space < 60) { // 一分钟以内
        $string = "刚刚";
        return $string;
    } elseif( $space < 3600 ) { // 一小时前之内 
        $string = floor($space / 60) . "分钟前";
        return $string;
    }
    $curtimeArray = getdate($curTime);
    $timeArray = getDate($timestamp);
    if( $curtimeArray['year'] == $timeArray['year'] ) { // 同一年
        if($curtimeArray['yday'] == $timeArray['yday']) { // 同一天
            $format = "%H:%M";
            $string = strftime($format, $timestamp);
            return "今天 {$string}";
        } elseif(($curtimeArray['yday'] - 1) == $timeArray['yday']) { // 昨天
            $format = "%H:%M";
            $string = strftime($format, $timestamp);
            return "昨天 {$string}";
        } else  {
            $string = sprintf("%d月%d日 d:d", $timeArray['mon'], $timeArray['mday'], $timeArray['hours'], $timeArray['minutes']);
            return $string;
        }
    }
    $string = sprintf("%d年%d月%d日 d:d", $timeArray['year'], $timeArray['mon'], $timeArray['mday'], $timeArray['hours'], $timeArray['minutes']);
    return $string;
}
使用示例:
echo sprintf("%d: %s\n", time(), timeFormat(time()));
echo sprintf("%d: %s\n", time()-720, timeFormat(time()-720));
echo sprintf("%d: %s\n", time()-10800, timeFormat(time()-10800));
echo sprintf("%d: %s\n", time()-86400, timeFormat(time()-86400));
echo sprintf("%d: %s\n", time()-86400*123, timeFormat(time()-86400*123));
echo sprintf("%d: %s\n", time()-86400*400, timeFormat(time()-86400*400));
输出结果:
1476155551: 刚刚
1476154831: 12分钟前
1476144751: 今天 08:12
1476069151: 昨天 11:12
1465528351: 6月10日 11:12
1441595551: 2015年9月7日 11:1

要回复问题请先登录注册