14Jul/070
Date Form Helper Functions
Many of my project is require user to input date into form. Therefore, I need functions that I can reuse it on my other project. This function actually is a complement to CodeIgniter's form helper. Here's the script :
<?php
function form_dropdown_date_day($name = 'date_day', $selected = 0, $leadingZero = false, $extra = ''){
if ($extra != '') $extra = ' '.$extra;
$form = '<select name="'.$name.'"'.$extra.">\n";
for($i = 1; $i <= 31; $i++){
$value = ($leadingZero ? (strlen($i) == 1 ? '0'.$i : $i) : $i);
$display = ($leadingZero ? (strlen($i) == 1 ? '0'.$i : $i) : $i);
$form .= '<option value="' . $value . '" ' . ($value == $selected ? 'selected="selected"' : '') . '>' . $display . "</option>\n";
}
$form .= "</select>\n";
return $form;
}
function form_dropdown_date_month($name = 'date_month', $selected = 0, $extra = ''){
if ($extra != '') $extra = ' '.$extra;
$form = '<select name="'.$name.'"'.$extra.">\n";
for($i = 1; $i <= 12; $i++){
$start = mktime(0, 0, 0, $i, 1, date('Y'));
$value = date('n', $start);
$display = date('F', $start);
$form .= '<option value="' . $value . '" ' . ($value == $selected ? 'selected="selected"' : '') . '>' . $display . "</option>\n";
}
$form .= "</select>\n";
return $form;
}
function form_dropdown_date_year($name = 'date_year', $selected = 0, $start = '', $end = '', $extra = ''){
if ($extra != '') $extra = ' '.$extra;
if ($start == '') $start = date('Y') - 50;
if ($end == '') $end = date('Y');
$form = '<select name="'.$name.'"'.$extra.">\n";
for($i = $end; $i >= $start; $i--){
$form .= '<option value="' . $i . '" ' . ($i == $selected ? 'selected="selected"' : '') . '>' . $i . "</option>\n";
}
$form .= "</select>\n";
return $form;
}
Here's sample usage and output :
<?php
//Test function
echo form_dropdown_date_day('birtdate_day');
echo form_dropdown_date_month('birthdate_month');
echo form_dropdown_date_year('birthdate_year');
echo '<br />';
//another test with selected value is supplied
echo form_dropdown_date_day('birtdate_day', 3);
echo form_dropdown_date_month('birthdate_month', 10);
echo form_dropdown_date_year('birthdate_year', 1984);
?>
And here's the output.





