php格式化时间戳


Posted in PHP onDecember 17, 2016

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 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 #PHP
简单解决微信文章图片防盗链问题
Dec 17 #PHP
PHP 7.1新特性的汇总介绍
Dec 16 #PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 #PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 #PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 #PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 #PHP
You might like
实用函数4
2007/11/08 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
python如何爬取个性签名
2018/06/19 Python
pandas值替换方法
2018/07/10 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
python中有帮助函数吗
2020/06/19 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
农田水利实习自我鉴定
2013/09/19 职场文书
小学教师的个人自我鉴定
2013/10/26 职场文书
个人优缺点自我评价
2014/01/27 职场文书
法制宣传口号
2014/06/16 职场文书
作风建设年活动总结
2014/08/27 职场文书
2015年见习期工作总结
2014/12/12 职场文书
黄埔军校观后感
2015/06/10 职场文书
2016消防宣传标语口号
2015/12/26 职场文书