上回讲到 Typecho 如何统计在线人数,你 get 到了吗?今天我们再来说说如何获取博客最近更新时间。
分析
最近更新时间,也可以称为最后更新时间、上次更新等等,其目的在于说明博客处于更新的状态,而不是无人打理。Typecho 本身并无提供相关参数供直接使用,因此我们需要换个思维角度来想想如何实现。更新,顾名思义,就是对博客进行了文章发表、修改等等,因此我们就会想到,是否可以把文章的发表时间、修改时间当作是最后一次更新的时间呢?这是肯定的,而且 Typecho 官方本身就会在文章异动时记录时间,所以我们只要在数据库中捞出最近的异动时间就可以了,是不是很简单,赶快来试试吧!
实现
直接上代码:
由于主机参数区别,不能直接复制粘贴使用,大家更应该学习的是思路方法。
function get_last_update(){
$num = '1'; //取最近的一笔就好了
$now = time();
$db = Typecho_Db::get();
$prefix = $db->getPrefix();
$create = $db->fetchRow($db->select('created')->from('table.contents')->limit($num)->order('created',Typecho_Db::SORT_DESC));
$update = $db->fetchRow($db->select('modified')->from('table.contents')->limit($num)->order('modified',Typecho_Db::SORT_DESC));
if($create>=$update){ //发表时间和更新时间取最近的
echo Typecho_I18n::dateWord($create['created'], $now); //转换为更通俗易懂的格式
}else{
echo Typecho_I18n::dateWord($update['modified'], $now);
}
}
效果
在想要显示最后更新时间的位置加入以下代码即可:
<?php get_last_update(); ?>
最终显示为类似如下的字段:
最后更新:4 秒前
Windows 10Chrome 72.0.3626.121来自 福建 的大神
看到这个标题后直接先进来谢谢,谢谢完了再去看正文。哈哈~
评论没问题,需要审核罢了。
要看方法,直接复制估计不能用呢
Windows 10Chrome 72.0.3626.121来自 福建 的大神
毛的不能用,6.66都大赏过去了。我复制不了。直接审查元素给你的代码复制过来了。可以用。哈哈。
Windows 10Chrome 72.0.3626.121来自 福建 的大神
其实这个实现方法我也是知道怎么去解决,就是代码写不出来。typecho后台有相应的最后编辑时间,也有那个最后登录时间,但是我就是写不出怎么获取的代码。悲剧。
哈哈哈,那你参考我的代码试试
Windows 10Firefox 68.0来自 浙江 的大神
谢谢博主的分享
Windows 10Chrome 70.0.3538.110来自 广东 的大神
大佬,后台几分钟没写东西就会自动退出,这个怎么样增加时间?
Typecho 有这功能??是不是启用了什么插件?