A-A+
把KingCMS的发布日期的显示今天或昨天个性化设置去掉
使用kingcms一般日期发布的时间,它会自动个性化的显示成今天、昨天、前天之类的,但是有的国外服务器跟国内的时间不一样,或者我要在图片或链接的注释上显示日期时,这种个性化的东东就显得很麻烦。如:
<a href="https://www.xiariboke.net" title="夏日博客发表于2013-02-19">把KingCMS的发布日期的显示今天或昨天个性化设置去掉</a>
这是正常的,但是如果是今天更新的话,title注释就会出现错误。代码如下
<a href="https://www.xiariboke.net" title="smiling发表于<em class="c1">今天 (06:04)</em>">把KingCMS的发布日期的显示今天或昨天个性化设置去掉</a>
下面就来搞定这个问题吧,把整个网站的这个东东去掉,首先打开system/lib/func.php文件,找到以下函数:
/** 日期格式化 @param int $time @param string $mode 输出模式,这个属性有点多余,完全可以用gmdate来实现 @param bool $is 模式 @return string */ function kc_formatdate($time,$mode='Y-m-d',$is=false){ global $king; if(($mode!='Y-m-d')||$is==true ){ $time+=$king->config('timediff')*3600; $s=gmdate($mode,$time); }else{ $ftime=gmdate('Ymd',$time); if($ftime==gmdate('Ymd',time())){ $time+=$king->config('timediff')*3600; $s='<em class="c1">'.$king->lang->get('system/time/to day')." ".gmdate('(H:i)',$time).'</em>'; }elseif($ftime==gmdate('Ymd',time()-86400)){ $time+=$king->config('timediff')*3600; $s='<em class="c2">'.$king->lang->get('system/time/yes ter')." ".gmdate('(H:i)',$time).'</em>'; }elseif($ftime==gmdate('Ymd',time()-172800)){ $s='<em class="c3">前天 '.gmdate('(H:i)',$time).'</em>'; }else{ $time+=$king->config('timediff')*3600; $s=gmdate($mode,$time); } } return $s;//.'['.time().'-'.$time.'='.(time()-$time).']'; }
修改成以下代码即可
function kc_formatdate($time,$mode='Y-m-d',$is=false){ global $king; if(($mode!='Y-m-d')||$is==true ){ $time+=$king->config('timediff')*3600; $s=gmdate($mode,$time); }else{ $s=gmdate($mode,$time); } return $s;//.'['.time().'-'.$time.'='.(time()-$time).']'; }
把服务器区时设为北京时间就好了嘛
smiling 回复:
这是源码显示的问题,直接更改时区恐怕不行。
看不懂的东东
smiling 回复:
开源程序里的源码。已回访。
博主这个方案解决时间显示的问题,为以后的kingcms的方便使用提供很大的帮助
smiling 回复:
根据自己的需求进行修改操作。