PHP 显示文章发布日期 一小时前 一天前 一月前 一年前
<?PHP
/**
* 传入日期格式或时间戳格式时间,返回与当前时间的差距,如1分钟前,2小时前,5月前,3年前等
* @param string or int $date 分两种日期格式"2013-12-11 14:16:12"或时间戳格式"1386743303"
* @param int $type
* @return string
*/
function formatTime($date = 0, $type = 1) { //$type = 1为时间戳格式,$type = 2为date时间格式
date_default_timezone_set('PRC'); //设置成中国的时区
switch ($type) {
case 1:
//$date时间戳格式
$second = time() - $date;
$minute = floor($second / 60) ? floor($second / 60) : 1; //得到分钟数
if ($minute >= 60 && $minute < (60 * 24)) { //分钟大于等于60分钟且小于一天的分钟数,即按小时显示
$hour = floor($minute / 60); //得到小时数
} elseif ($minute >= (60 * 24) && $minute < (60 * 24 * 30)) { //如果分钟数大于等于一天的分钟数,且小于一月的分钟数,则按天显示
$day = floor($minute / ( 60 * 24)); //得到天数
} elseif ($minute >= (60 * 24 * 30) && $minute < (60 * 24 * 365)) { //如果分钟数大于等于一月且小于一年的分钟数,则按月显示
$month = floor($minute / (60 * 24 * 30)); //得到月数
} elseif ($minute >= (60 * 24 * 365)) { //如果分钟数大于等于一年的分钟数,则按年显示
$year = floor($minute / (60 * 24 * 365)); //得到年数
}
break;
case 2:
//$date为字符串格式 2013-06-06 19:16:12
$date = strtotime($date);
$second = time() - $date;
$minute = floor($second / 60) ? floor($second / 60) : 1; //得到分钟数
if ($minute >= 60 && $minute < (60 * 24)) { //分钟大于等于60分钟且小于一天的分钟数,即按小时显示
$hour = floor($minute / 60); //得到小时数
} elseif ($minute >= (60 * 24) && $minute < (60 * 24 * 30)) { //如果分钟数大于等于一天的分钟数,且小于一月的分钟数,则按天显示
$day = floor($minute / ( 60 * 24)); //得到天数
} elseif ($minute >= (60 * 24 * 30) && $minute < (60 * 24 * 365)) { //如果分钟数大于等于一月且小于一年的分钟数,则按月显示
$month = floor($minute / (60 * 24 * 30)); //得到月数
} elseif ($minute >= (60 * 24 * 365)) { //如果分钟数大于等于一年的分钟数,则按年显示
$year = floor($minute / (60 * 24 * 365)); //得到年数
}
break;
default:
break;
}
if (isset($year)) {
return $year . '年前发布';
} elseif (isset($month)) {
return $month . '月前发布';
} elseif (isset($day)) {
return $day . '天前发布';
} elseif (isset($hour)) {
return $hour . '小时前发布';
} elseif (isset($minute)) {
return $minute . '分钟前发布';
}
}
//测试代码:
$time1 = time() - 60 * 60 * 23;
echo formatTime($time1, 1); //结果:23小时前
echo "<hr />";
$time2 = '2013-11-11 11:16:12'; //结果:3年前发布
echo formatTime($time2, 2);
?>
转载于:https://www.cnblogs.com/laowenBlog/p/6103787.html
PHP 显示文章发布日期 一小时前 一天前 一月前 一年前相关推荐
- 根据刚刚,1分钟前,1小时前,几天前显示文章发布日期
一分钟之内发布的,显示"刚刚" 一小时之内发布的,显示"XX分钟前" 一个月之内发布的,显示"XX天前" 一个月外的直接显示日期. 代码收藏 ...
- 织梦dedecms文章发布日期时间调用标签大全
DEDECMS织梦内容管理系统的文章发布时间显示格式可以多种样式,dedecms利用strftime()函数格式化时间,strftime()参数详解,包括年份日期进制.小时格式等. dedecms首页 ...
- thinkphp 引入时间_thinkphp 文章发布日期时间修改问题
请问: 后台添加文章时自动显示当前日期,此时保存时当前日期保持成功,如果对当前日期修改保存后,保存的日期变成1970-01-01, 对保存后的文章修改,也同样不能修改时间,修改的话结果同上一样是197 ...
- Windows 10发布日期提速,将于7月29日上市
昨天的一则传闻<Windows 10或从8月31日开售,价格也遭泄露>席卷了科技媒体的头条,而就在昨天晚上,微软官方博客正式公布了发布日期,相比传言的提前了一月,将于今年7月29日正式上市 ...
- 如何制定SEO文章发布模板?
我们都知道SEO编辑每天面临着大量的文章发布,为了使得原创文章发挥最大的效果,我们通常会按照,符合SEO标准的策略,去发布文章,一个成熟的SEO团队,通常会有一个文章发布的模板,用于提高工作效率: 那 ...
- 将时间改为显示:几天前,几小时前,或者几分钟前
(原博客地址:http://blog.csdn.net/kenhins/article/details/38010811) 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart ...
- php日期去掉分秒,Phpcms教程:解决内容页去掉发布时间的小时,分秒问题
我们都应该知道,官方的内容页的显示发布时间的标签是 :$inputtime.显示的时候是显示:比如发布时间:2015-12-12 12:12:12.像这样的显示效果对采集的站形像影响显然是很不好的,因 ...
- 文章发布系统的设计与实现
摘 要 随着计算机技术的迅速发展,网络正以一种前所未有的冲击力影响着人类的生产和生活.网络的快速发展,颠覆了传统的信息传播方式,冲破了传统的时间,空间的局限性,继而引发了人类阅读方式的变革.现如今,网 ...
- ASP.NET 学习笔记_13 文章发布管理小系统
母版页:SiteFont.Master 1 <%@ Master Language="C#" AutoEventWireup="true" CodeBeh ...
最新文章
- 【高并发】面试官问我:为啥局部变量是线程安全的?
- 企业选择网站建设能够对自身带来哪些作用?
- linux 更改ctime_linux常用命令
- jquery on()方法和bind()方法的区别
- [leetcode]5343. 多次求和构造目标数组
- 【react】---组件传值的介绍
- 使用jquery获取父元素或父节点的方法
- 禁用安全模式小方法!!~
- 279.完全平方数(力扣leetcode) 博主可答疑该问题
- CronTrigger(重要,非常强大)
- 微信公众号服务号如何在线给粉丝发送模板消息
- SSRF漏洞理解进阶SSRF+gopher打内网(redis、mysql、fastcgi) SSRF相关基础概念
- 第五篇 python计算新版个人所得税
- winXP系统( 联想)台式电脑自动开机、关机图文详细解(三)
- 中国高铁砥砺前行,促进经济腾飞
- 电脑连接wifi浏览器打不开网页
- html文件用ppt打开,ppt文件怎么打开?ppt是什么?
- Layui的eleTree树式选择器使用
- 机器学习实践系列之3 - 人脸对齐(上)
- golang websocket简单实现