You can do this by following some steps
Add these steps to youe view-
Firstly add date field as an simple filter,
then add same date field as an exposed filter,
then add these lines to header of the view
<form method="get">
<select name="field_date_value">
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<input type="submit" value="Apply">
</form>
After adding above steps save the view.
Now write below code to your activated theme template.php file
function hook_views_query_alter(&$view, &$query)
{
if($view->name=='demo12') // in place of demo12 ,place your view name here
{
if(isset($_GET['field_date_value']))
{
$month=$_GET['field_date_value'];
$query->where[1]['conditions'][2]['field']="DATE_FORMAT(ADDTIME(field_date_value
, SEC_TO_TIME(19800)),'%m') = :field_data_field_date_field_date_value";
$query->where[1]['conditions'][2]['value'][':field_data_field_date_field_date_value']=$month;
}
else
{
$query->where[1]['conditions']=array();
$query->where[1]['conditions'][0]['field']='node.status';
$query->where[1]['conditions'][0]['value']='1';
$query->where[1]['conditions'][0]['operator']='=';
$query->where[1]['conditions'][1]['field']='node.type';
$query->where[1]['conditions'][1]['value'][0]='demo';
$query->where[1]['conditions'][1]['operator']='in';
}
}
}
like- my theme name is 'testing' so replace "hook_views_query_alter(&$view, &$query)"
to "testing_views_query_alter(&$view, &$query)" in template.php.
You have to change fields name in above code as 'field_date_value' in above code is my content type 'date field' machine name.so you have to change it.
The above code is working in my view.
You can import the below given code of view to you site:-
======================================================================================
$view = new view();
$view-name = 'demo12';
$view-description = '';
$view-tag = 'default';
$view-base_table = 'node';
$view-human_name = 'demo12';
$view-core = 7;
$view-api_version = '3.0'
;
$view-disabled = FALSE; Edit this to true to make a default view disabled initially
Display Master
$handler = $view-new_display('default', 'Master', 'default');
$handler-display-display_options['title'] = 'demo12';
$handler-display-display_options['use_more_always'] = FALSE;
$handler-display-display_options['access']['type'] = 'perm';
$handler-display-display_options['cache']['type'] = 'none';
$handler-display-display_options['query']['type'] = 'views_query';
$handler-display-display_options['exposed_form']['type'] = 'basic';
$handler-display-display_options['pager']['type'] = 'full';
$handler-display-display_options['pager']['options']['items_per_page'] = '10';
$handler-display-display_options['style_plugin'] = 'default';
$handler-display-display_options['row_plugin'] = 'fields';
Header Global Text area
$handler-display-display_options['header']['area']['id'] = 'area';
$handler-display-display_options['header']['area']['table'] = 'views';
$handler-display-display_options['header']['area']['field'] = 'area';
$handler-display-display_options['header']['area']['empty'] = TRUE;
$handler-display-display_options['header']['area']['content'] = 'form method=get
select name=field_date_value
option value=01Janoption
option value=02Feboption
option value=03Marchoption
option value=04Apriloption
option value=05Mayoption
option value=06Juneoption
option value=07Julyoption
option value=08Augoption
option value=09Sepoption
option value=10Octoption
option value=11Novoption
option value=12Decoption
select
input type=submit value=Apply
form';
$handler-display-display_options['header']['area']['format'] = 'full_html';
Field Content Title
$handler-display-display_options['fields']['title']['id'] = 'title';
$handler-display-display_options['fields']['title']['table'] = 'node';
$handler-display-display_options['fields']['title']['field'] = 'title';
$handler-display-display_options['fields']['title']['label'] = '';
$handler-display-display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler-display-display_options['fields']['title']['alter']['ellipsis'] = FALSE;
Field Content Image
$handler-display-display_options['fields']['field_image']['id'] = 'field_image';
$handler-display-display_options['fields']['field_image']['table'] = 'field_data_field_image';
$handler-display-display_options['fields']['field_image']['field'] = 'field_image';
$handler-display-display_options['fields']['field_image']['click_sort_column'] = 'fid';
$handler-display-display_options['fields']['field_image']['settings'] = array(
'image_style' = '',
'image_link' = 'content',
);
Field Global Custom text
$handler-display-display_options['fields']['nothing']['id'] = 'nothing';
$handler-display-display_options['fields']['nothing']['table'] = 'views';
$handler-display-display_options['fields']['nothing']['field'] = 'nothing';
$handler-display-display_options['fields']['nothing']['alter']['text'] = 'a class=colorbox-load href=httpwww.youtube.comwatchv=617ANIA5Rqs title= We Share Our Mother's HealthWatch Nowa';
Field Content BirthDate
$handler-display-display_options['fields']['field_date']['id'] = 'field_date';
$handler-display-display_options['fields']['field_date']['table'] = 'field_data_field_date';
$handler-display-display_options['fields']['field_date']['field'] = 'field_date';
$handler-display-display_options['fields']['field_date']['settings'] = array(
'format_type' = 'long',
'fromto' = 'both',
'multiple_number' = '',
'multiple_from' = '',
'multiple_to' = '',
);
Sort criterion Content Post date
$handler-display-display_options['sorts']['created']['id'] = 'created';
$handler-display-display_options['sorts']['created']['table'] = 'node';
$handler-display-display_options['sorts']['created']['field'] = 'created';
$handler-display-display_options['sorts']['created']['order'] = 'DESC';
Contextual filter Content BirthDate (field_date)
$handler-display-display_options['arguments']['field_date_value']['id'] = 'field_date_value';
$handler-display-display_options['arguments']['field_date_value']['table'] = 'field_data_field_date';
$handler-display-display_options['arguments']['field_date_value']['field'] = 'field_date_value';
$handler-display-display_options['arguments']['field_date_value']['default_argument_type'] = 'date';
$handler-display-display_options['arguments']['field_date_value']['summary']['number_of_records'] = '0';
$handler-display-display_options['arguments']['field_date_value']['summary']['format'] = 'default_summary';
$handler-display-display_options['arguments']['field_date_value']['summary_options']['items_per_page'] = '25';
Filter criterion Content Published
$handler-display-display_options['filters']['status']['id'] = 'status';
$handler-display-display_options['filters']['status']['table'] = 'node';
$handler-display-display_options['filters']['status']['field'] = 'status';
$handler-display-display_options['filters']['status']['value'] = 1;
$handler-display-display_options['filters']['status']['group'] = 1;
$handler-display-display_options['filters']['status']['expose']['operator'] = FALSE;
Filter criterion Content Type
$handler-display-display_options['filters']['type']['id'] = 'type';
$handler-display-display_options['filters']['type']['table'] = 'node';
$handler-display-display_options['filters']['type']['field'] = 'type';
$handler-display-display_options['filters']['type']['value'] = array(
'demo' = 'demo',
);
Filter criterion Content BirthDate (field_date)
$handler-display-display_options['filters']['field_date_value']['id'] = 'field_date_value';
$handler-display-display_options['filters']['field_date_value']['table'] = 'field_data_field_date';
$handler-display-display_options['filters']['field_date_value']['field'] = 'field_date_value';
$handler-display-display_options['filters']['field_date_value']['granularity'] = 'month';
Display Page
$handler = $view-new_display('page', 'Page', 'page');
$handler-display-display_options['path'] = 'demo12';
===========================================================================================
You have to create content type with name 'demo' for it.Or have to change the name 'demo' with your content type name.
May this code will help you