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 相关文章推荐
php图片加中文水印实现代码分享
Oct 31 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
php验证码生成代码
Nov 11 PHP
php实现异步数据调用的方法
Dec 24 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
Smarty环境配置与使用入门教程
May 11 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
js实现分割上传大文件
2016/03/09 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
Python循环语句之break与continue的用法
2015/10/14 Python
分享Python文本生成二维码实例
2016/01/06 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
致全体运动员广播稿
2014/02/01 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
早会主持词
2014/03/17 职场文书
地球一小时倡议书
2014/04/15 职场文书
家长通知书家长评语
2014/04/17 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
python库sklearn常用操作
2021/08/23 Python