Re: date list

From: Date: Wed, 02 May 2001 01:06:38 +0000
Subject: Re: date list
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-51059@lists.php.net to get a copy of this message
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: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net -- 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: chris@quillsoft.com.au 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.

« previous php.general (#51059) next »