计算时间差函数集合

/**
 * 把两个日期格式的字符串转化成unix时间戳,
 * 然后相减获得时间戳差。最后判断剩余时间,生成类似(2小时30分钟20秒前发布)
 * 这样的时间格式
 * 
 * @link http://www.thinkphp.cn/code/455.html
 * 
 * @param string $time_s
 * @param string $time_n
 */
function gettime($time_s,$time_n){
    $time_s = strtotime($time_s);
    $time_n = strtotime($time_n);
    $strtime = '';
    $time = $time_n-$time_s;
    if($time >= 86400){
        return $strtime = date('Y-m-d H:i:s',$time_s);
    }
    if($time >= 3600){
        $strtime .= intval($time/3600).'小时';
        $time = $time % 3600;
    }else{
        $strtime .= '';
    }
    if($time >= 60){
        $strtime .= intval($time/60).'分钟';
        $time = $time % 60;
    }else{
        $strtime .= '';
    }
    if($time > 0){
        $strtime .= intval($time).'秒前';
    }elseif($time < 0){
        $strtime .= "时间错误";
    }else{
        $strtime .= "前";
    }
    return $strtime;
}
/**
 * 返回距离现在时间的格式,如1秒前,1分前,1小时前,1天前,1周前
 * 
 * @link http://www.9958.pw/post/php_time_juli
 * 
 * @param int $time 时间戳
 */
function maktimes($time)
{
    $t=time()-$time;
    $f=array(
        '31536000'=> '年',
        '2592000' => '个月',
        '604800'  => '星期',
        '86400'   => '天',
        '3600'    => '小时',
        '60'      => '分钟',
        '1'       => '秒'
    );
    foreach ($f as $k=>$v){
        if (0 !=$c=floor($t/(int)$k)){
            return $c.$v.'前';
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值