PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解

在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来。比如微博,SNS类应用就最长用到这个功能。而一般存储在数据库中的时间格式为 Unix时间戳,所以这里记录一个将 Unix时间戳 转化为时间轴显示的PHP函数。
函数比较简单,直接看代码就很好懂了。


代码如下:

<?php
date_default_timezone_set('PRC');
$date = "1351836000";
echo tranTime($date);
function transfer_time($time)
{
    $rtime = date("m-d H:i",$time);
    $htime = date("H:i",$time);
    $time = time() - $time;
    if ($time < 60)
    {
        $str = '刚刚';
    }
    elseif ($time < 60 * 60)
    {
        $min = floor($time/60);
        $str = $min.'分钟前';
    }
    elseif ($time < 60 * 60 * 24)
    {
        $h = floor($time/(60*60));
        $str = $h.'小时前 '.$htime;
    }
    elseif ($time < 60 * 60 * 24 * 3)
    {
        $d = floor($time/(60*60*24));
        if($d==1)
            $str = '昨天 '.$rtime;
        else
            $str = '前天 '.$rtime;
    }
    else
    {
        $str = $rtime;
    }
    return $str;
}
?>

注意函数transfer_time()中的参数$time必须为Unix时间戳,如果不是请先用strtotime()将其转换成Unix时间戳

(0)

相关推荐

  • PHP生成验证码时“图像因其本身有错无法显示”的解决方法

    今天使用代码进行PHP生成校验码功能的实现,发现firefox一直提示"图像.......因其本身有错无法显示"的问题,作者也提示了说"如果浏览器显示"图像XXX因其本身有错无法显示",可尽量去掉文中空格",但把代码中所有空格都去掉了还是不能显示检验图片. 于是深度google,大部分的解决方案也是将"<?"这句代码前的空格回车一切都删掉以防止有html输出,但这根本解决不了我的问题,后来看到有人在Header(&quo

  • flex压缩图片exif信息(作者/相机)丢失问题解决

    在用flex的jpegencoder对图片进行压缩的时候,exif信息会丢失,也就是图片的作者,用的相机,神马的,全部都没有了,怎么办呢? 经研究jpeg的文档,最终解决这个问题 1.jpeg的文件格式,分成一个一个frame,每个frame以0xFF打头,然后跟着一个标识未,比如0xFFD8表示文件的开始,0xFFD9表示文件结束,紧接着标识位的是这个frame的长度,长度不包括0xFF和标识位,但包括这个2个字节的长度,比如一个frame开始了,先是一个0xFF然后是一个0xXX,然后是两个

  • 在PHP上显示JFreechart画的统计图方法

    如何在PHP上显示JFreechart?可能大部分都遇到这种情况,在JSP上的servlet能完全的显示出JFreechart画的统计图,但是和其他语言混合运用就不能显示了 我现在也遇到这个问题,想了半个小时终于弄明白了,实现的过程还是很简单的.(个人经验总结而已) 解决的思路: 1.先将JFreechart生成的图片保存在web 服务器上. 2.然后在JSP上用<img>标签显示 3.通过JS将JSP导入PHP页面 这样就实现了. 部分getColumnChart.jsp源码: 复制代码 代

  • 使用php+apc实现上传进度条且在IE7下不显示的问题解决方法

    今天整理以前写过的关于上传文件,并显示进度条的程序代码,对该代码进行优化整理.解决了一直困扰的问题:有时进度条没有达到100%,浏览器出现假死现象.在IE8.chrome测试非常完美. 项目需求: 上传APK,显示上传进度条,上传完成开始分析APK,并显示:正在分析apk数据,请稍后... ,分析完成后,显示:上传成功,重新上传 由于我电脑装的是winxp英文版,IE默认的是IE7,在测试的时候发现进度条不显示.百分比也不显示. 排除问题: 1.将DOM改成jquery方式,不显示 2.给递归调

  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误:  (1)修改步骤如下,原因如下,原因是apache权限没开,  (2)点击打开php.int., 搜索extension=php_gd2.dll 打开?去掉前面分号重启apache,就OK了 ,万事大吉了.  希望各位朋友遇到这样的问题的时候,能给与帮助

  • php的webservice的wsdl的XML无法显示问题的解决方法

    php的webservice的因为wsdl有中文所以xml无法显示 可以用Nopepad++  转码即可  以UTF-8无BOM编码

  • PHP实现显示照片exif信息的方法

    PHP编程可实现显示照片EXIF信息,显示图片中缩略图效果,其代码如下: <? /** * 获取图象信息的函数 * 一个全面获取图象信息的函数 * @access public * @param string $img 图片路径 * @return array */ function GetImageInfoVal($ImageInfo,$val_arr) { $InfoVal = "未知"; foreach($val_arr as $name=>$val) { if ($

  • Python读取图片EXIF信息类库介绍和使用实例

    首先要介绍的是 Python Imaging Library,使用方法如下: 复制代码 代码如下: from PIL import Image from PIL.ExifTags import TAGS def get_exif_data(fname):     """Get embedded EXIF data from image file."""     ret = {}     try:         img = Image.open(

  • 让PHP显示Facebook的粉丝数量方法

    如果你的网站或者博客上有内链的Facebook页面,你或许想知道拥有多少粉丝.这段代码将帮助你查看Facebook粉丝数,记住,别忘了在你的页面ID第二行添加该段代码. 复制代码 代码如下: <span style="font-size:12px;"><?php $page_id = "YOUR PAGE-ID"; $xml = @simplexml_load_file("http://api.facebook.com/restserve

  • PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解

    在很多场合为了显示出信息的及时性,一般会将时间显示成"刚刚","5分钟前","3小时前"等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Unix时间戳,所以这里记录一个将 Unix时间戳 转化为时间轴显示的PHP函数.函数比较简单,直接看代码就很好懂了. 复制代码 代码如下: <?phpdate_default_timezone_set('PRC');$date = "13

  • echarts中X轴显示特定个数label并修改样式的方法详解

    目录 前言 需求: 必须显示起始日期和终止日期 需求: 由于画布限制,只让显示起始和终止日期,或者再加上中间日期 需求: 将起始和终止刻度限定在轴线范围内,不允许现实超过轴线 总结 前言 在使用echarts绘图时可能遇到一些特别的需求,如,当x周表示日期且数据较多(如三个月,按天统计),此时如果按照echarts的默认配置,则会根据空间剩余的大小自动计算最终显示有限的几个不重叠的label 需求: 必须显示起始日期和终止日期 echarts默认属性会导致如果重叠,最大值和最小值会被隐藏,首先要

  • 基于python时间处理方法(详解)

    在处理数据和进行机器学习的时候,遇到了大量需要处理的时间序列.比如说:数据库读取的str和time的转化,还有time的差值计算.总结一下python的时间处理方面的内容. 一.字符串和时间序列的转化 time.strptime():字符串=>时间序列 time.strftime():时间序列=>字符串 import time start = "2017-01-01" end = "2017-8-12" startTime = time.strptime

  • Linux中使用NTP保持精确时间的方法详解

    前言 如何保持正确的时间,如何使用 NTP 和 systemd 让你的计算机在不滥用时间服务器的前提下保持同步.下面话不多说了,来一起看看详细的介绍吧. 它的时间是多少? 让 Linux 来告诉你时间的时候,它是很奇怪的.你可能认为是使用 time 命令来告诉你时间,其实并不是,因为 time 只是一个测量一个进程运行了多少时间的计时器.为得到时间,你需要运行的是 date 命令,你想查看更多的日期,你可以运行 cal 命令.文件上的时间戳也是一个容易混淆的地方,因为根据你的发行版默认情况不同,

  • 关于Python 中的时间处理包datetime和arrow的方法详解

    在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年.月.日等 # 方法一: today = datetime.date.today() # 1. 获取「今天」 first = today.replace(day=1) # 2. 获取当前月的第一天 last_month = first - datetime.timedelta(days=1) # 3. 减一天,得到上个月的最后一天 print(last_month.strftime("%Y%m")) # 4. 格式化成指定形

  • 显示IntelliJ IDEA工具的Run Dashboard功能图文详解

    1.点击IDEA上面工具栏View-->Tool Windows-->Run Dashboard,如下图: 2.如果Tool Windows的子选项里没有找到Run Dashboard,可以在工程目录下找.idea文件夹下的workspace.xml,增加如下组件,如图: 代码: <component name="RunDashboard"> <option name="configurationTypes"> <set&g

  • MFC修改编辑框光标显示位置方法详解

    当前的开发环境:VS2010,32位 MFC框架 使用MFC中系统CComboBox控件时,会有三种风格,其中有一种风格:CBN_DROPDWON,该编辑框是可以进行编辑的. 更改多CComboBox高度的友友们就会发现这样一个问题,控件高度变高后,edit编辑控件的高度光标一直处于左上角的位置,看起来很是不美观,如下图所示: 其实,想要实现光标处于垂直状态,如下图所示: 这种效果看着就比较顺眼了,此时,有人想要问,怎么改变编辑框的高度呢? 有人使用系统的MoveWindow,居然不生效?这个问

  • WPF实现在控件上显示Loading等待动画的方法详解

    WPF 如何在控件上显示 Loading 等待动画 框架使用.NET40: Visual Studio 2022; 使用方式需引入命名空间后设置控件的附加属性 wd:Loading.IsShow="true",即可显示默认等待动画效果如下: 如需自定义 Loading 一定要 先设置 wd:Loading.Child 在设置 IsShow="true" . 显示不同 Loading 内容需 wd:Loading.Child ={x:Static wd:NormalL

  • Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)

    在methods中创建方法showtime,传入要跟当前时间要对比的时间 showtime(time) { let date = typeof time === "number" ? new Date(time) : new Date((time || "").replace(/-/g, "/")); let diff = (new Date().getTime() - date.getTime()) / 1000; let dayDiff =

  • js显示动态时间的方法详解

    本文实例讲述了js显示动态时间的方法.分享给大家供大家参考,具体如下: Date对象的方法 Date 对象能够使你获得相对于国际标准时间(格林威治标准时间,现在被称为 UTC-Universal Coordinated Time)或者是 Flash 播放器正运行的操作系统的时间和日期.要使用Date对象的方法,你就必须先创建一个Date对象的实体(Instance). Date 对象必须使用 Flash 5 或以后版本的播放器. Date 对象的方法并不是静态的,但是在使用时却可以应用于所指定的

随机推荐