【经验】PHP/JS 时间戳友好化格式化函数(几分钟、几小时前、几天前等)

对于JS时间戳友好化函数,前已分享过,见文章“时间以几分钟、几小时前、几天前等时间差显示的js函数”。

话说看到别人写的这么一个函数,测试了一下,有些小毛病:对于跨年日期,没有显示年份。修改如下:
function mdate($time = NULL) {
    $text = '';
    $time = $time === NULL || $time > time() ? time() : intval($time);
    $t = time() - $time; //时间差 (秒)
    $y = date('Y', $time)-date('Y', time());//是否跨年
    switch($t){
    	case $t == 0:
    		 $text = '刚刚';
    		 break;
    	case $t < 60:
    		$text = $t . '秒前'; // 一分钟内
    		break;
    	case $t < 60 * 60:
    		$text = floor($t / 60) . '分钟前'; //一小时内
    		break;
    	case $t < 60 * 60 * 24:
    		$text = floor($t / (60 * 60)) . '小时前'; // 一天内
    		break;
    	case $t < 60 * 60 * 24 * 3:
    		$text = floor($time/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天
    		break;
    	case $t < 60 * 60 * 24 * 30:
    		$text = date('m月d日 H:i', $time); //一个月内
    		break;
    	case $t < 60 * 60 * 24 * 365&&$y==0:
    		$text = date('m月d日', $time); //一年内
    		break;
    	default:
    		$text = date('Y年m月d日', $time); //一年以前
    		break; 
    }
        
    return $text;
}

ThinkPHP中:

将写好的函数放到 Common 文件夹下。系统会自动加载的。
放到这个common.php页里,common.php 固有格式,不要改名。

模板中直接调用

{$vo.time|mdate}
即可。

原函数地址 http://www.thinkphp.cn/code/40.html


阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
知识共享许可协议
评论(0) 浏览(24540) 引用(0)
引用地址:http://blog.baiwand.com/tb.php?sc=c0802c&id=202
Tags:
« 【读书笔记】“CSS3使用指南”之“渐进增强与优雅降级” 【读书笔记】“Javascript编程精解”之“正则表达式” »

Blogger

  • blogger
  • 天之骄子
  • 职位:研发工程师
    铭言:
    阳光与欢乐同在,
    与我同在
    主页:
    blog.baiwand.com

分类目录

日志归档

主题标签

数据统计

  • 日志:151篇
  • 评论:45条
  • 碎语:264条
  • 引用:0条

链接表

随机日志 »

最新日志 »

最新评论 »

标签云 »

订阅Rss
sitemap