当前位置: 首页 > 编程笔记 >

php格式化时间戳显示友好的时间实现思路及代码

杭永安
2023-03-14
本文向大家介绍php格式化时间戳显示友好的时间实现思路及代码,包括了php格式化时间戳显示友好的时间实现思路及代码的使用技巧和注意事项,需要的朋友参考一下

在项目中时间一律显示为2014-10-20 10:22显得很呆板。在微博、QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式。那么用php怎么实现呢?

大体思路如下:

如果是跨年并且大于3天就显示为具体的时间

如果是今天的

如果是一分钟内则显示几秒之前

如果是一小时内则显示几分钟前

如果是当天且大于一小时则显示为几小时前

如果是昨天则显示为昨天几点

如果是前天则显示为前天几点

如果大于三天(没有跨年)则显示为几月几号

根据以上思路就不难写出实现代码了:

实现代码如下:

//格式化友好显示时间
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时间戳格式化显示友好的时间函数分享的使用技巧和注意事项,需要的朋友参考一下 在项目中时间一律显示为2014-10-20 10:22显得很呆板。在微博、QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式。那么用php怎么实现呢? 大体思路如下: 如果是跨年并且大于3天就显示为具体的时间 如

  • 本文向大家介绍python 时间戳与格式化时间的转化实现代码,包括了python 时间戳与格式化时间的转化实现代码的使用技巧和注意事项,需要的朋友参考一下 python 里面与时间有关的模块主要是 time 和 datetime 如果想获取系统当前时间戳:time.time() ,是一个float型的数据 获取系统当前的时间信息 : time.ctime() 是一个str类型的时间字符串,一般比较

  • 本文向大家介绍php格式化时间戳,包括了php格式化时间戳的使用技巧和注意事项,需要的朋友参考一下 CMS中一般显示时间比较新的文章需要显示几分钟前,几天前这样,但是一般数据库里面记录的都是时间戳(至少我习惯这样),所以就需要一个转化的过程,根据网上的资料加上自己的修改整理封装了两段代码 下面是封装好的方法 或者 更详细的 再分享一个类似的

  • 问题内容: 我有一个带时间戳字段的mySQL数据库。我正在测试时,目前只有一个项目, 我从数据库中提取并使用 我的最终结果显示为 有人知道为什么吗? 编辑:editedit:忽略该编辑… notepad ++的FTP附加组件超时,很遗憾,当它无法同步时,它不会显示错误。 问题答案: 该函数希望将UNIX时间戳记作为其第二个参数- 这意味着您必须将从数据库获取的日期转换为UNIX时间戳记,可以使用以

  • 本文向大家介绍vue.js将时间戳转化为日期格式的实现代码,包括了vue.js将时间戳转化为日期格式的实现代码的使用技巧和注意事项,需要的朋友参考一下 看看下面的代码吧,具体代码如下所示:  把上面代码保存为date.js放到你的公共js文件夹中。 在你的需要格式化时间戳的组件里像下面这样使用: 总结 以上所述是小编给大家介绍的vue.js将时间戳转化为日期格式的实现代码,希望对大家有所帮助,如果

  • 问题内容: 如何根据自己的喜好设置java.sql时间戳?(以字符串形式显示) 问题答案: 延伸。你可以做: 或还包括时间: