select data in drop-down box

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I have a two text box and one select box.

two text box will be filled with date values. (in the form of
First text box is called "start date"
Second is "end date"

Thus, I want to put dates between "start date" and "end date" in select

Is there any way to put automatically in option field?
My idea is, first calculate the date difference
and then, add date till startdate + difference.  

Re: select data in drop-down box

kirke wrote:
Quoted text here. Click to load it

It is possible with PHP when that 'start' date and the 'end' date are known
BEFORE the user requests that page. Simply generate all possible dates
between those two values, and commit them to select boxes. If they're not
known, or they cross month or year barriers, you'll have to rely on
javascript to limit the options (and make unlimited options available
without javascript, on a date outside the possibilities you will produce an
error on submitting).

Ofcourse, on submitting, whether javascript is enabled or not, you'll
always have to check start, interim, and end date on submitting to make
sure it's valid.

On HOW to make a date confirm by js, I'd suggest a trip to


Rik Wasmus

Re: select data in drop-down box

 assume that I know the start  and end date already.
Then How can I generate dates between two dates?

Rik wrote:
Quoted text here. Click to load it

Re: select data in drop-down box

kirke wrote:
Quoted text here. Click to load it

Well, that should be easy, whipped together something for you (untested):

/* $start & $end = UNIX timestamps
$step = number of second between steps (60*60*24 for dates offcourse)
$format = returned format as in strftime()
 $include_limits = boolean wether the start and end dates should be
included */

function generate_dates($start,$end,$step = 86400,$format =
'',$include_limits = false){
    $start_i = intval($start);
    $end_i = intval($end);
    if($start_i!=$start || $end_i != $end){
        trigger_error('No valid timestamps given.');
        return false;
    if($start_i > $end_i){
        trigger_error('Start date is later then End date.');
        return false;
    if(!is_int($step) || $step <= 0){
        trigger_error('Step is either not an integer or zero or less.');
        return false;
    $return = array();
        $return[] = $start;
    $current = $start_i + $step;
    while($current < $end_i){
        $return[] = strftime($format,$current);
        $current = ($current + $step);
    if(end($return) < $end_i){
        $return[] = $end;
    return $return;

Rik Wasmus

Site Timeline