欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

d7 drupal7 视图 views 选择 日期范围 有大用 有大大用 有大大大用

1)  view 选择  按日期过滤  (这个是 created ,似乎不是日期类型 )

结束日期的话 需要  form_alter 这个   过滤器表单  (默认是加上 24*2600  秒(一天) ,因为 只有日期 没有时间的话,它是以 2024-1-18 00: 00:00  为结束,结果就不包含了)


function custom_twenty_two_jses_form_alter(&$form, &$form_state, $form_id)
{

   if ('views_exposed_form' == $form_id && $_GET['q'] == 'list_operation_logs') {
       if(!empty(_removeCnEnSpace($_GET['created']))){
           $created = _removeCnEnSpace($_GET['created']);
           $created_arr = explode(' ',$created);
           $form['created']['#value'] = $created_arr[0];
       }
       if(!empty(_removeCnEnSpace($_GET['created_1']))){
           $created_1 = _removeCnEnSpace($_GET['created_1']);
           $created_1_arr = explode(' ',$created_1);
           $form['created_1']['#value'] = $created_1_arr[0];
       }
       if(!empty(_removeCnEnSpace($_GET['created']) || !empty(_removeCnEnSpace($_GET['created_1'])))){
           $form['#validate'][] = '_custom_twenty_two_jses_list_operation_logs_views_exposed_form_validate';
       }
   }

}


//主要是为了处理结束时间的,让结束时间 加上 24*3600 秒
//还为了把时分秒去掉
function _custom_twenty_two_jses_list_operation_logs_views_exposed_form_validate($form, &$form_state)
{

   
if(!empty(_removeCnEnSpace($_GET['created']))){
       
$created = date('Y-m-d',strtotime(_removeCnEnSpace($form_state['values']['created'])));//开始日期,这个作用不大,反正是从 年-月-日 00:00:00 开始
       
$form_state['values']['created'] = $created;
   }
   
if(!empty(_removeCnEnSpace($_GET['created_1']))){
       
$created_1 =date('Y-m-d',strtotime(_removeCnEnSpace($form_state['values']['created_1']))+24*3600);//结束日期 根据逻辑,默认就是小于等于结束日期 年-月-日 00:00:00,,不对,我们要加上一天,24*3600,这样,就包含了,结束日期
       
$form_state['values']['created_1'] = $created_1;
   }
}

image.png


2)  view 选择  按日期过滤  popup 弹窗形式

有一点是肯定的,反正使用Popup  ( 其它的 选择 和 文本 没有试过 ),,关于结束时间的话, 不需要  像上面的  form_alter  这个过滤器表单

image.png

image.png

普通分类: