PHP loop through months array
$months = array();for ($i = 0; $i < 8; $i++) { $timestamp = mktime(0, 0, 0, date('n') - $i, 1); $months[date('n', $timestamp)] = date('F', $timestamp);}
Alternative for "custom" month names:
$months = array(1 => 'Jan.', 2 => 'Feb.', 3 => 'Mar.', 4 => 'Apr.', 5 => 'May', 6 => 'Jun.', 7 => 'Jul.', 8 => 'Aug.', 9 => 'Sep.', 10 => 'Oct.', 11 => 'Nov.', 12 => 'Dec.');$transposed = array_slice($months, date('n'), 12, true) + array_slice($months, 0, date('n'), true);$last8 = array_reverse(array_slice($transposed, -8, 12, true), true);
To output an array of such months as dropdown is as simple as:
<select name="month"> <?php foreach ($months as $num => $name) { printf('<option value="%u">%s</option>', $num, $name); } ?></select>
$months = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July ', 'August', 'September', 'October', 'November', 'December',);$current = date('F');$start = array_search($current, $months);$toshow = array();$total = 0;for($i = $start; $total < 8; $i--){ if($i == 0) { $i = 12; } $toshow[] = $months[$i]; $total++;}var_dump($toshow);
Give that a shot, just dump out $toshow to your HTML.