当前位置:首页 > CMS教程 > phpcms > 列表

phpcms v9 时间筛选该怎么做?

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-18 17:13:34 浏览: 评论:0 

在phpcmsv9里,分类信息里的筛选功能让人很兴奋,如果想在内容页里也想做筛选,那么就得把分类信息的函数移植到全局函数或者扩展函数里去,下一篇内容将为大家介绍.

本次内容是教大家做时间的筛选,因为做寿县房产网的时候,楼盘开盘有个开盘时间,所以找了很多资料解决了这个问题.

找到filters_sql函数加入如下代码:

  1. function filters_sql($modelid
  2.  
  3.             elseif($fields[$k]['formtype'] == 'datetime') { 
  4.                 if(is_numeric($r)) { 
  5.                     $sql .=" AND `$k` = '$r'"
  6.                 } else { 
  7.                     $fieldvalue = explode('_',$r); 
  8.                     $min = intval($fieldvalue[0]); 
  9.                     $max = $fieldvalue[1] ? intval($fieldvalue[1]) : 999999;                
  10.                     $sql .="AND TO_DAYS(`$k`) - TO_DAYS(NOW()) >= '$min' AND TO_DAYS(`$k`) - TO_DAYS(NOW()) < '$max'"
  11.                 } //phpfensi.com 
  12.             } 

关键点在:$sql .="AND TO_DAYS(`$k`) - TO_DAYS(NOW()) >= '$min' AND TO_DAYS(`$k`) - TO_DAYS(NOW()) < '$max'";

用到的是日期差的问题,前台调用的时候用如下代码:

  1. 开课计划: 
  2.  {php $opentime = array('最近1个月|1_30','最近2个月|30_90','最近3个月|90_120','最近6个月|120_180','最近1年|180_360')} 
  3.  {loop yp_filters('opentime',$modelid,$opentime) $r} 
  4.      {$r[menu]} 
  5.  {/loop}

Tags: phpcms时间筛选 phpcms日期差

分享到: