Forum Moderators: coopster
<td><select id = 'month' name = 'month'>
<?
echo "<option>--- Month ---</option>";
mssql_data_seek($resultMonths, 0);
$cntr = 0;
while ($rowMonths=mssql_fetch_assoc($resultMonths))
{
if ($cntr == 0) {$cntrString = "selected";} else {$cntrString = "";}
echo "<option ".$cntrString." value='".$rowMonths['MonthDataInt'].",".$rowMonths['MonthName']." ".$rowMonths['Year']."'>".$rowMonths['MonthName']." ".$rowMonths['Year']."</option>";
$cntr++;
}
?>
</select></td>
At the moment $rowMonths['MonthName'] comes out as, e.g. June 2008
I need to make it display June 2008 - May 2007.
Any ideas on how to do this in code picking up the month number from the word maybe?
//some code to work out the month name 12 months ago so instead of displaying
//June 2008, we display June 2008 - May 2007
function getMonthFromPrevYear ($curr) {
$monthName = array(
"01"=>"January",
"02"=>"Febuary",
"03"=>"March",
"04"=>"April",
"05"=>"May",
"06"=>"June",
"07"=>"July",
"08"=>"August",
"09"=>"September",
"10"=>"October",
"11"=>"November",
"12"=>"December",
);
$count_total = count($monthName);
for ($counter=0; $counter<$count_total; $counter++){
$line = each ($monthName);
if ($line[value] == str_replace(" ","",$curr)) {$monthnum = $line[key];}
if ($line[key] == $monthnum) {
//echo "$line[key] $line[value] <br />";
$prevmth = date('F Y', mktime(0, 0, 0, $line[key]-13, date("d"), date("Y")));
}
}
return $prevmth;
}//drop down code
echo "<option>--- Month ---</option>";
mssql_data_seek($resultMonths, 0);
$cntr = 0;
while ($rowMonths=mssql_fetch_assoc($resultMonths))
{
$prevmth_rtn = getMonthFromPrevYear ($rowMonths['MonthName']);
if ($cntr == 0) {$cntrString = "selected";} else {$cntrString = "";}
echo "<option ".$cntrString." value='".$rowMonths['MonthDataInt'].",".$rowMonths['MonthName']." ".$rowMonths['Year']."'>".$rowMonths['MonthName']." ".$rowMonths['Year']." - $prevmth_rtn</option>";
$cntr++;
}
I don't think this takes account of times when the year is the same e.g. Decmeber 2008 - January 2008
SELECT
CURRENT_DATE AS dateThisYr,
CURRENT_DATE - INTERVAL 11 MONTH AS dateLastYr
;
// returns:
+------------+------------+
¦ dateThisYr ¦ dateLastYr ¦
+------------+------------+
¦ 2008-08-13 ¦ 2007-09-13 ¦
+------------+------------+
SELECT
MONTHNAME(CURRENT_DATE) ¦¦
' ' ¦¦
YEAR(CURRENT_DATE) ¦¦
' - ' ¦¦
MONTHNAME(CURRENT_DATE - INTERVAL 11 MONTH) ¦¦
' ' ¦¦
YEAR(CURRENT_DATE - INTERVAL 1 YEAR) AS myDateRange
;
// returns: August 2008 - September 2007