How to list nodes and have them grouped by Day / Week / Month?
What you need to do is create a custom PHP field and manually code out the group by conditions as you have set there. I had the same issue I documented on my blog here: http://drupul.com/content/views-multiple-group-recipe-drupal-7

This is the code I used in my PHP field:

&lt;?php 
global $prev_month;
global $month;

if($prev_month != date('F Y', strtotime($data-&gt;field_field_date_2[0]['raw']['value'])))
{ 
  $month = '&lt;h4&gt;'. date('F Y', strtotime($data-&gt;field_field_date_2[0]['raw']['value'])) .'&lt;/h4&gt;'; 
  $prev_month = date('F Y', strtotime($data-&gt;field_field_date_2[0]['raw']['value'])); 
} 
else 
{ $month = ''; }

print($month .'&lt;h5&gt;'. date('M d', strtotime($data-&gt;field_field_date_2[0]['raw']['value'])) .'&lt;/h5&gt;');
?&gt;


You will of course have to modify it to your setup, but its very similar to the setup you need as I needed it to be grouped by month then week and then day.