9.11. Creating Dropdown Menus Based on the Current Date
Problem
You want to create a series of dropdown menus that are based automatically on the current date.
Solution
Use date( )
to find the current time in the web
server’s time zone and loop through the days
with
mktime( ).
The following code generates option values for
today and the six days that follow. In this case,
“today” is January 1, 2002.
list($hour, $minute, $second, $month, $day, $year) =
split(':', date('h:i:s:m:d:Y'));
// print out one week's worth of days
for ($i = 0; $i < 7; ++$i) {
$timestamp = mktime($hour, $minute, $second, $month, $day + $i, $year);
$date = date("D, F j, Y", $timestamp);
print "<option value=\"$timestamp\">$date</option>\n";
}
<option value="946746000">Tue, January 1, 2002</option>
<option value="946832400">Wed, January 2, 2002</option>
<option value="946918800">Thu, January 3, 2002</option>
<option value="947005200">Fri, January 4, 2002</option>
<option value="947091600">Sat, January 5, 2002</option>
<option value="947178000">Sun, January 6, 2002</option>
<option value="947264400">Mon, January 7, 2002</option>Discussion
In the Solution, we set the value for each date as
its Unix timestamp representation because we find this easier to
handle inside our programs. Of course, you can use any format you
find most useful and appropriate.
Don’t be tempted to eliminate the calls to
mktime( ); dates and times aren’t as consistent as you’d hope. Depending on what you’re doing, you might not get the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access