Jon,
Just had to do almost exactly this - here's one solution. The tricky bit was
getting the number of days in the month - you have to look at next month!
This generates a list for 12 months starting with the current month and outputs
display stuff as well. In our scenario this is passed to a script which grabs
records from a database and produces a report for the month selected and the
previous month so the range of values is always for 2 months. Ours goes
backwards - you'll need to adjust it to run forwards.
<select name="strReportMonth" size="1">
<? // Get This Month
$strThisMonth = date('m');
$strThisYear = date('Y');
// convert to integer
$strThisMonth++;
$strNextMonth = $strThisMonth;
$strPrevYear = $strThisYear;
for($i=0;$i<=12;$i++) {
$strThisMonth--;
if($strNextMonth == 0) {
$strNextMonth = 12;
}
if($strNextMonth == 13) {
$strNextMonth = 1;
}
// How many days in this month
$lastday = mktime (0,0,0,$strNextMonth,0,$strThisYear);
$last = strftime ("%d", $lastday);
$strThisMonthTS = mktime (0,0,0,$strNextMonth,0,$strThisYear);
$strThisMonthName = strftime ("%B", $strThisMonthTS);
$strNextMonth--;
if($strThisMonth == 0) {
$strThisMonth = 12;
$strThisYear--;
}
$strPrevMonth = $strThisMonth -1;
if($strPrevMonth == 0) {
$strPrevMonth = 12;
$strPrevYear--;
}
$strPrevMonthTS = mktime (0,0,0,$strThisMonth,0,$strPrevYear);
$strPrevMonthName = strftime ("%B", $strPrevMonthTS);
if($strPrevMonth < 10) {
$strPrevMonth = "0".$strPrevMonth;
}
if($strThisMonth < 10) {
$strThisMonth = "0".$strThisMonth;
}
?>
<option value="<? print
$strPrevMonth."/01/".$strPrevYear."|".$strThisMonth."/".$last."/".$strThisYear."|".$strThisMonthName."|".$strThisYear."|".$strPrevMonth."|".$strThisMonth."|".$strPrevMonthName."|".$strPrevYear;
?>"><? print $strThisMonthName." ".$strThisYear; ?>
<?
}
?>
</select>
Jon Rosenberg wrote:
> I need to make a select list for a web page in the following format:
>
> 01/01/01-01/07/01
> 01/08/01-01/14/01
> 01/15/01-01/21/01
> etc
> etc
> till the end of 2002 and further in the future eventually
>
> I'd like to make PHP generate this for me so I don't have to handcode it for
> each year in the future. I've looked at the date/time functions and I'm a
> bit confused. Any help would be appreciated. Thanks!
>
> Jon
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
--
Chris Fry
Quillsoft Pty Ltd
Specialists in Secure Internet Services and E-Commerce Solutions
10 Gray Street
Kogarah
NSW 2217
Australia
Phone: +61 2 9553 1691
Fax: +61 2 9553 1692
Mobile: 0419 414 323
eMail: [EMAIL PROTECTED]
http://www.quillsoft.com.au
You can download our Public CA Certificate from:-
https://ca.secureanywhere.com/htdocs/cacert.crt
**********************************************************************
This information contains confidential information intended only for
the use of the authorised recipient. If you are not an authorised
recipient of this e-mail, please contact Quillsoft Pty Ltd by return
e-mail.
In this case, you should not read, print, re-transmit, store or act
in reliance on this e-mail or any attachments, and should destroy all
copies of them.
This e-mail and any attachments may also contain copyright material
belonging to Quillsoft Pty Ltd.
The views expressed in this e-mail or attachments are the views of
the author and not the views of Quillsoft Pty Ltd.
You should only deal with the material contained in this e-mail if
you are authorised to do so.
This notice should not be removed.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]