PHP 格式化时间显示刚刚、几分钟前、昨天、前天

leixue 设计开发 2019-03-11 10:40:59 阅读(...) 评论(8)

我们可能经常在一些网站上看到刚刚、几分钟前、几小时前,昨天 12:00、前天 13:30 等时间展现方式,不得不说子凡认为这样的展现方式用户体验度还是非常高的,相比直接显示年月日及时间点的反而让人陷入时间计算的一个盲区,对于新闻资讯类的文章列表展现体验显然有些格格不入了。

PHP 格式化时间显示刚刚、几分钟前、昨天、前天

其实这个功能在三四年前泪雪博客以及泪雪网都开始应用,事过境迁虽然展现的方式依旧还是非常不错,只是在某些细节上的展现有些不尽人意,可以说是达不到子凡对极致追求的标准了吧,所以在最近子凡做泪雪网用户中心的功能开发时来完善这一细微处的体验。

首先还是直接上代码吧,给大家一个参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//时间格式化(时间戳)
function uc_time_ago($ptime) {
	date_default_timezone_set('PRC');
	//$ptime = strtotime($ptime);
	$etime = time() - $ptime;
	switch ($etime){
		case $etime <= 60:
			$msg = '刚刚';
			break;
		case $etime > 60 && $etime <= 60 * 60:
			$msg = floor($etime / 60) . ' 分钟前';
			break;
		case $etime > 60 * 60 && $etime <= 24 * 60 * 60:
			$msg = date('Ymd',$ptime)==date('Ymd',time()) ? '今天 '.date('H:i',$ptime) : '昨天 '.date('H:i',$ptime);
			break;
		case $etime > 24 * 60 * 60 && $etime <= 2 * 24 * 60 * 60:
			$msg = date('Ymd',$ptime)+1==date('Ymd',time()) ? '昨天 '.date('H:i',$ptime) : '前天 '.date('H:i',$ptime);
			break;
		case $etime > 2 * 24 * 60 * 60 && $etime <= 12 * 30 * 24 * 60 * 60:
			$msg = date('Y',$ptime)==date('Y',time()) ? date('m-d H:i',$ptime) : date('Y-m-d H:i',$ptime);
			break;
		default: $msg = date('Y-m-d H:i',$ptime);
	}
	return $msg;
}

其实子凡本来想懒一下在晚上找找看有没有优秀的代码分享,结果没有一个可以达到我的高要求,所以无奈只能自己动手了,目前网上有分享的一些代码或多或少都有一点不完美,没有添加当天的判断,简单的说就是他们只是以 24 小时为一天,而非是以凌晨过后作为第二天的判断,所以就导致昨天,前天的显示并不那么准确。

time ago demo

当然啦,子凡也同样的简化了一些功能,例如并没有几周前、几个月前,更没有几年前这样的骚操作,而是将时间超过三天都直接显示年月时间,超过当年的则显示完整的年月日时间,总之以子凡对用户体验的研究和纯个人观点来说,这样的方式我认为都是很不错的显示方式,喜欢的朋友可以参考使用,如果你有其它看法记得给我留言评论,我们来一次思想上的碰撞吧!

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/time-ago-on-php.html

发表评论

  1. 鸟叔
    1楼
    鸟叔 1周前 (03-13)

    博主,我发现你的网站在百度搜索里面本来应该显示网址的地方怎么显示你的网站的中文名字,是怎么弄的?

    • 张子凡
      回复
      张子凡 1周前 (03-14)
      回复 @鸟叔 :这是接入了熊掌ID的缘故,也就是原来的熊掌号。
  2. 鸟叔
    2楼
    鸟叔 1周前 (03-13)

    子凡博主技术宅,写的太专业了都看不懂~~

    • 张子凡
      回复
      张子凡 1周前 (03-14)
      回复 @鸟叔 :都是直接上代码的,没有太专业啦,给有些愿意折腾的开发者一些思路参考。哈哈哈
  3. 不锈钢装饰
    3楼
    不锈钢装饰 2周前 (03-13)

    那先成的用 必须告诉你哈哈

  4. wordpress建站
    4楼
    wordpress建站 2周前 (03-12)

    时间戳

  5. 搬瓦工
    5楼
    搬瓦工 2周前 (03-12)

    大佬 交换链接吗

    • 张子凡
      回复
      张子凡 1周前 (03-14)
      回复 @搬瓦工 :抱歉啦,贵站不太适合。