织梦DedeCMS调用发布时间为某个时间前的文章实现方法
织梦的文章发布时间调用格式一般分为一下这些:
[field:pubdate function="MyDate('Y-m-d',@me)"/] 2013-12-17 [field:pubdate function=MyDate('m-d',@me)/] 12-17 [field:pubdate function=MyDate('y-m-d',@me)/] 13-12-17 [field:pubdate function='strftime("%y-%m-%d %H:%M:%S",@me)'/] 13-12-17 10:35:21 [field:pubdate function='strftime("%m-%d %H:%M:%S",@me)'/] 12-17 10:35:21 [field:pubdate function='strftime("%y年%m月%d日",@me)'/] 13年12月17日 [field:pubdate function='strftime("%Y年%m月%d日 %H点%M分%S秒",@me)'/] 13年12月17日 12点12分30秒
有的时候,我们想做到不直接显示具体时间,而是以几天前、几月前这样的时间间隔方式来显示, 更利于让访客直观地看到文章的发布时段,以上的调用方法则不适用了。
教大家如何实现显示发布时间为多少时间前,主要有两种方法:
一、模板直接写PHP语句:
[field:pubdate runphp='yes'] $today = Floor(time()/(3600 * 24)); $senday= Floor(@me/(3600 * 24)); $updays = $today-$senday; if($updays >= 30 && $updays < 60) @me="1个月前"; elseif($updays >= 60 && $updays < 90) @me="2个月前"; elseif($updays >= 90 && $updays < 120) @me="3个月前"; elseif($updays >= 120 && $updays < 150) @me="4个月前"; elseif($updays >= 150 && $updays < 180) @me="5个月前"; elseif($updays >= 180 && $updays < 210) @me="6个月前"; elseif($updays >= 210 && $updays < 240) @me="7个月前"; elseif($updays >= 240 && $updays < 270) @me="8个月前"; elseif($updays >= 270 && $updays < 300) @me="9个月前"; elseif($updays > 300 && $updays < 330) @me="10个月前"; elseif($updays > 330 && $updays < 360) @me="11个月前"; elseif($updays >= 360) @me="一年前"; elseif($updays==0) @me = "今日"; else @me = $updays."天前"; [/field:pubdate]
二、自定义函数
在include/extend.func.php文件中加入以下代码:
//文章发布多少时间前 function tranTime($time) { $today = Floor(time()/(3600 * 24)); $senday= Floor($time/(3600 * 24)); $updays = $today-$senday; if($updays==0) $str = '今天'; elseif ($updays >=1 && $updays < 31) { $str = $updays.'天前 '; } elseif ($updays >= 31&& $updays < 365) { $m = floor($updays / 31); $str = $m.'月前 '; } elseif ($updays >= 31&& $updays < 365) { $y = floor($updays / (31* 365)); $str = $y.'年前 '; } else { $str = $rtime; } return $str; }
如果要显示几分钟和几小时,则自行加入判断函数:
elseif ($updays >0 && $updays < 1 ) { $h = floor($updays * 24); $str = $h.'小时前 '; }
调用方法
列表页:
[field:pubdate function="tranTime(@me)" /]
内容页:
{dede:field.pubdate function="tranTime(@me)"/}
以上两种方法都可以实现调用,第一种方法是直接把php语法写入模版中,会显得文件比较冗余,建议使用第二种自定函数的方式,简单明了。
(资源库 www.zyku.net)
上一篇:织梦DedeCMS安装模块(插件)后台空白的解决方法
栏 目:DedeCMS
本文标题:织梦DedeCMS调用发布时间为某个时间前的文章实现方法
本文地址:https://www.zyku.net/dedecms/1672.html
您可能感兴趣的文章
- 02-28帝国CMS批量修改发布时间的方法
- 02-22DedeCMS列表页将文章发布时间修改为“今天、昨天、后
- 02-26帝国CMS 7.2版本升级功能列表及发布时间
- 12-01搜狗输入法开启完全访问权限流程一览
- 12-15小米mix4怎么设置防误触模式
- 12-18HTML <param> 标签
- 11-09苹果13如何进行本地天气定位
- 10-14weavesilk下载图片步骤介绍
- 10-22苹果13mini序列号在哪看
- 10-19oppo手机怎么启用来电显示
- 08-15AE顶点方向转动教程分享
- 02-27帝国CMS商城开启支付宝支付的方法
- 11-11苹果13如何开机激活
- 06-18帝国CMS7.5版编辑器升级为CKEditor编
- 08-15美团饭小圈好友怎么添加
- 11-26微信公众号个性化推荐在哪开启
- 11-25苹果13控制中心自定义方法介绍
- 11-26autosleep重新播放介绍教程分享
- 11-21红米note10pro如何关闭高清通话
- 02-20写给喜欢用DW编写CSS人的一些建议

最近更新
阅读排行
猜你喜欢
- 09-19淘宝淘友圈自动分享购买商品教程介绍
- 09-21抖音设置省流量模式教程一览
- 12-07真我手机如何唤醒语音助手
- 06-26highlightjs网页代码高亮插件调用方法
- 10-23vivox70pro+如何设置自动开关机
- 10-30搜狗输入法开启切换大写时自动锁定
- 11-01小米civi怎么设置来电闪光灯
- 10-30vivox70pro怎么设置下拉状态栏
- 09-15iPhone年年焕新规则更改介绍
- 09-20闽政通怎么打不开崩了