Freelancer's Playground! Learn Programming, The Freelancer's Way

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.

blog comments powered by Disqus