- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章php格式化时间戳显示友好的时间实现思路及代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在项目中时间一律显示为2014-10-20 10:22显得很呆板。在微博、QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式。那么用php怎么实现呢?
大体思路如下:
如果是跨年并且大于3天就显示为具体的时间 。
如果是今天的 。
如果是一分钟内则显示几秒之前 。
如果是一小时内则显示几分钟前 。
如果是当天且大于一小时则显示为几小时前 。
如果是昨天则显示为昨天几点 。
如果是前天则显示为前天几点 。
如果大于三天(没有跨年)则显示为几月几号 。
根据以上思路就不难写出实现代码了:
实现代码如下
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
26
27
28
29
30
31
32
33
|
//格式化友好显示时间
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格式化时间戳显示友好的时间实现思路及代码的文章就讲到这里了,如果你想了解更多关于php格式化时间戳显示友好的时间实现思路及代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!