php表示昨天_PHP 格式化时间显示刚刚、几分钟前、昨天、前天

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

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

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

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

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;

}

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

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

转载请注明出处:https://www.it131.org/8497.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值