私は少し前に同様の要件を持っていました。私がやったことは、hook_views_query_alter()で小さなモジュールを作成することでした。少しコードを書く必要がありますが、ビューUIのコンテキストフィルター内にPHPコードを追加するよりも、エレガントで保守しやすいと思います。
以下を試してください:
.moduleファイル
function MODULE_views_api() {
return array(
'api' => 3,
);
}
module.views.inc
//make sure you use your date field table and field name bellow
function MODULE_views_query_alter(&$view, &$query) {
if ($view->name == 'date_test') { // replace this with your view name
//this line removes the year from your date field
$formula = "DATE_FORMAT(field_data_field_date.field_date_value, '%m-%d')";
//join the field table
$join = new views_join();
$join->table = 'field_data_field_date';
$join->field = 'entity_id';
$join->left_table = 'node';
$join->left_field = 'nid';
$join->type = 'left';
//add the join the the view query
$query->add_relationship('field_data_field_date', $join, 'node');
$first = date('m-d', strtotime('first day of this month'));
$last = date('m-d', strtotime('last day of this month'));
//add the field without the year
$query->add_field(NULL, $formula, 'date_no_year');
//add the where clauses
$query->add_where(0, "$formula >= '$first'", array(), 'formula');
$query->add_where(0, "$formula <= '$last'", array(), 'formula');
}
}