Laravel时间显示问题,我想让时间这样显示:
比如:一篇文章的发表时间:
**距离现在时间** **显示格式**
< 1小时 xx分钟前
1小时-24小时 xx小时前
1天-10天 xx天前
>10天 直接显示日期
应该怎么做呢?
Laravel时间显示问题,我想让时间这样显示:
比如:一篇文章的发表时间:
**距离现在时间** **显示格式**
< 1小时 xx分钟前
1小时-24小时 xx小时前
1天-10天 xx天前
>10天 直接显示日期
应该怎么做呢?
public function formatDate($time = 0){
$tmp = time() - $time;
if($tmp && $tmp <= 60 * 60){
return ceil($tmp / 60) + 1 . '分钟前';
}elseif($tmp > 60 * 60 && $tmp < 60 * 60 * 24){
return ceil($tmp / 60 / 60) + 1 . '小时前';
}elseif($tmp > 60 * 60 * 24 && $tmp < 60 * 60 * 24 * 10){
return ceil($tmp / 60 / 60 / 24) + 1 . '天前';
}else{
return date('Y-m-d H:i:s',$time);
}
}
2 回答2.5k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答851 阅读✓ 已解决
2 回答525 阅读✓ 已解决
943 阅读
2 回答566 阅读
1 回答685 阅读
Laravel 本身有对 Carbon 的完美支持,巧妙的利用就可以达到很好的效果:
首先:
在你的
app/Providers/AppServiceProvider.php
中添加\Carbon\Carbon::setLocale('zh');
这一行到boot()
方法当中,(为了中文化显示)第二:
在
Article
的Model
中添加下面的方法:这里注意到使用到了 Laravel 的
getXXXAttribute()
的特性,如果你是其他的字段,比如published_at
,方法应该写成getPublishedAtAttribute($date)
,别忘了在Article头部use Carbon\Carbon;
。最后:
直接显示你的日期就好:
更多 Laravel 的讨论学习,请到我的小站:https://laravist.com
亲测: Laravel 5.1 和 5.2 都OK