侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

php格式化时间戳

php  /  管理员 发布于 7年前   255

CMS中一般显示时间比较新的文章需要显示几分钟前,几天前这样,但是一般数据库里面记录的都是时间戳(至少我习惯这样),所以就需要一个转化的过程,根据网上的资料加上自己的修改整理封装了两段代码

下面是封装好的方法

function formatTime($time) {    $time = (int) substr($time, 0, 10);    $int = time() - $time;    $str = '';    if ($int <= 2){      $str = sprintf('刚刚', $int);    }elseif ($int < 60){      $str = sprintf('%d秒前', $int);    }elseif ($int < 3600){      $str = sprintf('%d分钟前', floor($int / 60));    }elseif ($int < 86400){      $str = sprintf('%d小时前', floor($int / 3600));    }elseif ($int < 2592000){      $str = sprintf('%d天前', floor($int / 86400));    }else{      $str = date('Y-m-d H:i:s', $time);    }    return $str;  }

或者 更详细的

  function formatTime($time)  {    $text = '';    $time = intval($time);    $ctime = time();    $t = $ctime - $time; //时间差    if ($t < 0) {      return date('Y-m-d', $time);    }    ;    $y = date('Y', $ctime) - date('Y', $time);//是否跨年    switch ($t) {      case $t == 0:        $text = '刚刚';        break;      case $t < 60://一分钟内        $text = $t . '秒前';        break;      case $t < 3600://一小时内        $text = floor($t / 60) . '分钟前';        break;      case $t < 86400://一天内        $text = floor($t / 3600) . '小时前'; // 一天内        break;      case $t < 2592000://30天内        if($time > strtotime(date('Ymd',strtotime("-1 day")))) {          $text = '昨天';        } elseif($time > strtotime(date('Ymd',strtotime("-2 days")))) {          $text = '前天';        } else {          $text = floor($t / 86400) . '天前';        }        break;      case $t < 31536000 && $y == 0://一年内 不跨年        $m = date('m', $ctime) - date('m', $time) -1;        if($m == 0) {          $text = floor($t / 86400) . '天前';        } else {          $text = $m . '个月前';        }        break;      case $t < 31536000 && $y > 0://一年内 跨年        $text = (11 - date('m', $time) + date('m', $ctime)) . '个月前';        break;      default:        $text = (date('Y', $ctime) - date('Y', $time)) . '年前';        break;    }    return $text;  }

再分享一个类似的

//格式化友好显示时间function formatTime($time){$now=time();$day=date('Y-m-d',$time);$today=date('Y-m-d');$dayArr=explode('-',$day);$todayArr=explode('-',$today);//距离的天数,这种方法超过30天则不一定准确,但是30天内是准确的,因为一个月可能是30天也可能是31天$days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);//距离的秒数$secs=$now-$time;if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超过3天return date('Y-m-d',$time);}else{if($days<1){//今天if($secs<60)return $secs.'秒前';elseif($secs<3600)return floor($secs/60)."分钟前";else return floor($secs/3600)."小时前";}else if($days<2){//昨天$hour=date('h',$time);return "昨天".$hour.'点';}elseif($days<3){//前天$hour=date('h',$time);return "前天".$hour.'点';}else{//三天前return date('m月d号',$time);}}}

您可能感兴趣的文章:

  • php Smarty date_format [格式化时间日期]
  • php格式化时间戳显示友好的时间实现思路及代码
  • php自定义的格式化时间示例代码
  • PHP获取当前日期和时间及格式化方法参数
  • PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
  • php格式化日期和时间格式化示例分享
  • PHP格式化显示时间date()函数代码
  • php时间戳格式化显示友好的时间函数分享
  • PHP日期函数date格式化UNIX时间的方法
  • PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
  • PHP常用函数之格式化时间操作示例


  • 上一条:
    PHP二维数组去重算法
    下一条:
    PHP生成唯一ID之SnowFlake算法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客