PbootCms默认的日期标签可以使用style=Y-m-d形式定制日期格式。这不是本着把扩展标签玩出花样的目的来搞一搞事情。(当然也是给各位做一个学习参考)
我想要的效果是,发布时间可以显示:
刚刚
1小时前;
昨天 几点几分;
前天 几点几分;
年月日 几点几分;
这样的一个个性化日期效果,具体效果可以看本文上方的标题。
开撸
主要功能的实现代码
//转换日期
private function transtime(){
$pattern = '/\{transtime\s?\(([^\}]+)\)\}/';
if (preg_match($pattern, $this->content, $matches)) {
$this->content = preg_replace_callback(
$pattern,
function($matches){
$time = strtotime($matches[1]);
$otime = date("Y-m-d H:i",$time);
$rtime = date("m-d H:i",$time);
$htime = date("H:i",$time);
$time = time() - $time;
if ($time < 60){
$str = '刚刚';
}
elseif ($time < 60 * 60){
$min = floor($time/60);
$str = $min.'分钟前';
}elseif ($time < 60 * 60 * 24){
$h = floor($time/(60*60));
$str = $h.'小时前 '.$htime;
}elseif ($time < 60 * 60 * 24 * 3){
$d = floor($time/(60*60*24));
if($d==1)
$str = '昨天 '.$rtime;
else
$str = '前天 '.$rtime;
}else{
$str = $otime;
}
return $str;
},
$this->content);
}
}然后将该方法加入到run中执行即可。
/* 必备启动函数 */
public function run($content)
{
// 接收数据
$this->content = $content;
//****************这里省略其他扩展,自行补充
//转换日期
$this->transtime();
// 返回数据
return $this->content;
}调用方式
详情页:
{@transtime({content:date})} 记得把@去掉哦,我这里加@是防止被解析掉,你们看不到效果。
列表页(list标签中)
{@transtime([list:date])} 记得把@去掉哦,我这里加@是防止被解析掉,你们看不到效果。
插件下载说明
未提供下载提取码的插件,都是站长辛苦开发,需收取费用!想免费获取辛苦开发插件的请绕道!
织梦二次开发QQ群
本站客服QQ号:3149518909(点击左边QQ号交流),群号(383578617)
如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » PbootCms扩展个性化日期调用






























