欢迎各位兄弟 发布技术文章
这里的技术是共享的
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;
}
}
2) view 选择 按日期过滤 popup 弹窗形式
有一点是肯定的,反正使用Popup ( 其它的 选择 和 文本 没有试过 ),,关于结束时间的话, 不需要 像上面的 form_alter 这个过滤器表单