织梦的文章发布时间调用格式一般分为一下这些:
[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 && $updays = 90 && $updays = 120 && $updays = 150 && $updays = 180 && $updays = 210 && $updays = 240 && $updays = 270 && $updays 300 && $updays 330 && $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&& $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语法写入模版中,会显得文件比较冗余,建议使用第二种自定函数的方式,简单明了。