You can make a custom page template for this specific search page http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates.
Then set some $_GET variables (using a form with method GET).
And do a custom query for these $_GET values:
$date_query = new WP_Query( 'year=" . $_GET["year'] . '&monthnum=' . $_GET['month'] . '&day=' . $_GET['day'] );
Then your custom loop:
<?php if ($date_query->have_posts()) : while ($date_query->have_posts()) : $date_query->the_post();?>
<?php the_title(); ?>
<?php endwhile; endif; ?>
UPDATE:
Sorry that it took so long, a bit busy.
Here is a solution for your problem:
put this in your function.php
function my_date_search() {
if(is_search()) {
$search_query = get_search_query();
$months = array( 1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December" );
foreach($months as $month => $month_name) {
if(stristr($search_query, $month_name)) {
$m = $month;
preg_match('/(19[0-9][0-9]|20[0-9][0-9])/', $search_query, $year);
if($year)
$y = $year[0];
preg_match('/^[0-3]{0,1}[0-9]{1} /', $search_query, $day);
if($day)
$d = $day[0];
}
}
if(isset($d) && isset($m) && isset($y)) {
$wd = explode($y, $search_query);
if($wd[1])
$query_string = 's=" . trim($wd[1]) . "&year=" . $y . "&monthnum=' . $m . '&day=' . $d;
else
$query_string = 'year=" . $y . "&monthnum=' . $m . '&day=' . $d;
query_posts($query_string);
}
}
}
add_action('get_header', 'my_date_search');
If you search on something like “14 june 2011” than it will show a search page of 14 june 2011. If you search on “14 june 2011 searchthis” than it will show a search page for 14 june 2011 with the searchphrase “searchthis”.
Maybe there is an easier/better solution for you, but this will work.