php格式化时间戳函数写法

  • 时间:
  • 6842人关注

一般mysql数据库中存储时间都是使用的Unix时间戳,那么我们显示时间的时候如果更加的友好呢,今天就给大家分享3个封装好的格式化函数,有需要的小伙伴可以参考下,另外这篇文章主要知识点是关于php、格式化、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:
  • 编辑整理:从经义
  • 教程字数:2172字节
  • 阅读时间:大概10分钟
  • 下载本教程(DOC版)
  • PHP编程从入门到实践
  • JSON-handle
  • JSON Formatter
  • php与java所需jar包
  • PHP7实践指南:O2O网站与App后台开发
  • 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微信公众号里快递查询开发详解

    下一篇:swoole_process实现进程池的实例代码

    相关内容

    • 学了java可以自学PHP吗

      会不会JAVA都可以自学PHP,PHP完全可以零基础入门,会JAVA(其实任何一门语言)对学习PHP是有帮助的。只要你意志力够,自学入门还是不成问题的,想深入还是需要项目经验和公司的历练。 1、不管是PHP还是Java都是不错的选择,目前来说这两种语言都还处在势头上,但是从长远出发还是Java好,毕竟从性能、处理数据各方面来看还是Java有优势一些,当然最终选择还是在你自己的手里。PHP入门相对JAVA简单。深入的话其实也不浅。入门比JAVA好入门一些,语法

      12-08学了java能自学PHP吗

      阅读更多
    • php与java关系大吗

      php与java可以说是没有什么关系,关系就是同样都是编程语言。目前来说java的钱还有前景都是很好的~但是相对于php来说这是条艰难险阻的路,java会比php的结构复杂还有涉及方面都比较广,要学得好的话需要狠下苦工,php相对而言入门的门槛比较低,即使没有语言基础还是有可能学得不错,php来讲主要都是做网站就是B/C端~也可以拿来做系统开发~如果你对生活质量要求高想要专研技术一味干下去的就选java没错~如果你觉得只要快点可以过上好点的生活还有

      12-03php与java有什么关系

      阅读更多
    • php接口和java接口的区别

      java和php接口的区别是:1、php接口中的抽象方法只能是public的,默认也是public权限;2、java中私有方法使用private修饰,供接口中的默认方法或者静态方法调用。

      11-30php接口和java接口区别是什么

      阅读更多
    • 学了Java会PHP吗

      学了java不等于会php,这是两种不同的语言,编程的事情没有投机取巧,目前要用哪个就专注哪种语言,不同的语言语法、函数上总归会有不同,但一旦你对某一种语言深入了(很难说达到精通),你在转换的时候会上手很快。专注网站开发的话,建议PHP,容易上手点。PHP相对于来说要简单点,学起要快一点,小公司开发多用PHP开发,如果你是转行,可以从PHP开始。 1、PHP是函数式语言,Java是面向对象语言,PHP和Java的差异还是相当大的。比如变量声明,

      11-26学了Java就会PHP吗

      阅读更多
    • 懂java还需要学php吗

      懂java不需要特意再去学php,因为java和php是两种语言是不同方面的应用。java更注重于企业及的开发。php主要是做网站的。当你学完java之后在想学php会感到会场简单的,特别是面向对象这块。多学点没坏处,但要是为了学java去学php,就有点画蛇添足了。PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP.而Java要先编译成Class文件,然后在Java虚拟机上执行,Java开发需要熟悉Java语法以及一些核心的架构,

      11-25会java还需要学php吗

      阅读更多
    • 写给PHP开发者的Node.js学习指南

      写给PHP开发者的Node.js学习指南

      Node.js是一套用来编写高性能网络服务器的JavaScript工具包。结合PHP和Node.js,我们可以概览整个Web服务器从起源到现在的历史过程以及其中的改变。 《 写给PHP开发者的Node.js学习指南 》的目的是

      大小:3.46 MBNode.js

      点击下载
    • PHP和MySQL Web开发(第4版)

      PHP和MySQL Web开发(第4版)

      《PHP和MySQL Web开发》将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子

      大小:51.6 MB网站开发

      点击下载
    • 高性能PHP7

      高性能PHP7

      《高性能PHP 7》通俗易懂且图文并茂,实践案例丰富,相信一定能吸引大家阅读。全书目标清晰,始终围绕着如何使用PHP及周边技术来优化性能这一主题,能够为许多工程师解决实际问题。

      大小:11.3 MBPHP7

      点击下载
    • PHP&MySQL跨设备网站开发实例精粹

      PHP&MySQL跨设备网站开发实例精粹

      这本书从易学实用的角度详细讲解了PHP、HTML5语法,MySQL数据库存取,网页之间的信息传递、表单的后端处理等,提供了丰富的网站开发范例,欢迎下载

      大小:80.9 MBPHP编程

      点击下载
    • PHP项目开发全程实录(第4版)

      PHP项目开发全程实录(第4版)

      大小:70471 MB MPHP开发

      点击下载
    • 深入PHP:面向对象、模式与实践(第3版)

      深入PHP:面向对象、模式与实践(第3版)

      《深入PHP:面向对象、模式与实践(第3版)》是PHP专家经典力作的新版本。书中主要介绍了如何使用面向对象技术和设计模式编写稳定的、可维护的代码,如何使用Subversion管理多个开发人员,

      大小:41.3 MBPHP编程

      点击下载
    • PHP和MySQL Web开发(第5版)

      PHP和MySQL Web开发(第5版)

      在《PHP和MySQL Web开发》书中,我们将把使用PHP与MySQL的经验和心得体会毫无保留地分享给你,PHP和MySQL是目前热门的两个Web开发工具。

      大小:27 MB网站开发

      点击下载
    • php7.3.8官方手册文档

      php7.3.8官方手册文档

      PHP 7 是目前一代的 PHP,内部使用了 Zend 引擎 3 代, 除了很多新功能之外还提供了许多附加的 面向对象编程(OOP) 特性。php7.3.8版本-最新中文手册,chm格式-方便查找索引,需要的朋友可下载试试! 本手册很详细的介绍了PHP语言,以及怎么去用好这门语言,适合于初学者以及在编程过程中做辅助查询手册,PHP(PHP: Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 WEB 开发。

      大小:31.5 MBphp学习

      点击下载
    • 深入理解php:高级技巧、面向对象与核心技术(第3版)

      深入理解php:高级技巧、面向对象与核心技术(第3版)

      本书是一本帮助中初级PHP程序员修炼成为高级PHP程序员的书,也是一本让PHP程序员能更快、更好地进行应用开发的书,是PHP领域经典,PHPer修炼必读书,包含大量实用案例,极具可操作性,欢迎下载阅读

      大小:76 MBphp

      点击下载
    • PHP+MySQL动态网站开发从入门到精通

      PHP+MySQL动态网站开发从入门到精通

      《PHP+MySQL动态网站开发从入门到精通》本书循序渐进地介绍了PHP 7 MySQL 5.7开发动态网站的主要知识和技能,提供案例、课件、命令速查手册,让你看得懂、学得会、做得出,教你快速成为网站应用开发高手。

      大小:36.2 MB网站开发

      点击下载

    学习笔记

    6小时13分钟前回答

    PHP自定义函数实现格式化秒的代码分享

    本文实例讲述了PHP自定义函数实现格式化秒的方法。分享给大家供大家参考,具体如下: function vtime($time) { $output = ; foreach (array(86400 = 天, 3600 = 小时, 60 = 分, 1 = 秒) as $key = $value) { if ($time = $key) $output .= floor($time/$key) . $value; $time %= $key; } if($output==){ $output=0; } return $output;}//$now=time();$oldtime=86465;//echo vtime($now);//输出:17058天4小时8分55秒echo vtime($oldtime);//输出:1天1分5秒 希望本文所述对大家PHP程序设计有所帮助。 ……

    45小时19分钟前回答

    PHP中的日期时间处理利器Carbon实例用法

    Carbon介绍 Carbon是PHP中很人性化的时间日期处理插件,github拥有接近5000个 star。 github地址为:https://github.com/briannesbitt/Carbon Carbon基本用法 //1、基本应用$now = Carbon::now(); //2016-11-03 14:13:16$today = Carbon::today(); //2016-11-03 00:00:00$tomorrow = Carbon::tomorrow(); //2016-11-04 00:00:00$yesterday = Carbon::yesterday(); //2016-11-02 00:00:00//2、判断是否是某一天(2016-11-03(周四)举例)$now = Carbon::now();var_dump($now-isWeekend());//false 因为周四不是周末var_dump($now-isWeekday());//true 因为周四是工作日var_dump($now-isThursday());//true 因为今天是周四$now-isToday();$now-isTomorrow();$now-isFuture();$now-isPast();//3、创建某一天的carbon对象并且进行加减计算$date = Carbon::create(2016, ……