Page 1 of 1

Some help needed with date dropdowns

Posted: Wed Mar 04, 2009 11:44 am
by fluvius
Hi,

I'm a complete newby where PHP coding is concerned, and have just had to look at some code produced way back in 2002 by someone else.

The code in question is given below and is used to produce date dropdown lists on the page. Comments are included in the code.

The comment at the start specifies PHP4 ONLY!! but the current host uses PHP5.

My question is this: Will this affect the functions performance (I'm guessing yes - why else put the comment in) and if so would it be best to
ask the host to install PHP4 instead or in some way update the function to use PHP5?

All help and advice gratefully received.
Tony.

Code: Select all

function generate_datedropdown($fn)
    {
        // PHP4 ONLY !!
        $d = getdate();
        if (func_num_args() == 2) 
        {   
            if (func_get_arg (1) <> "0000-00-00")
            {
                $d = getdate(strtotime(func_get_arg (1)));
            }
            else
            {
                $d = "";
                $d['mday'] = "0";
                $d['mon'] = "0";
                $d['year'] = "0";
            }
        }
        // Generates a date drop down ... if a date was passed in then it becomes the default else the currect date is used.
        
        // Day
        ?><select name="<?=$fn?>_day">
            <option value="0"<? if ($d['mday'] == "0") echo " selected";?>>-</option>
            <option value="1"<? if ($d['mday'] == "1") echo " selected";?>>1st</option>
            <option value="2"<? if ($d['mday'] == "2") echo " selected";?>>2nd</option>
            <option value="3"<? if ($d['mday'] == "3") echo " selected";?>>3rd</option>
            <option value="4"<? if ($d['mday'] == "4") echo " selected";?>>4th</option>
            <option value="5"<? if ($d['mday'] == "5") echo " selected";?>>5th</option>
            <option value="6"<? if ($d['mday'] == "6") echo " selected";?>>6th</option>
            <option value="7"<? if ($d['mday'] == "7") echo " selected";?>>7th</option>
            <option value="8"<? if ($d['mday'] == "8") echo " selected";?>>8th</option>
            <option value="9"<? if ($d['mday'] == "9") echo " selected";?>>9th</option>
            <option value="10"<? if ($d['mday'] == "10") echo " selected";?>>10th</option>
            <option value="11"<? if ($d['mday'] == "11") echo " selected";?>>11th</option>
            <option value="12"<? if ($d['mday'] == "12") echo " selected";?>>12th</option>
            <option value="13"<? if ($d['mday'] == "13") echo " selected";?>>13th</option>
            <option value="14"<? if ($d['mday'] == "14") echo " selected";?>>14th</option>
            <option value="15"<? if ($d['mday'] == "15") echo " selected";?>>15th</option>
            <option value="16"<? if ($d['mday'] == "16") echo " selected";?>>16th</option>
            <option value="17"<? if ($d['mday'] == "17") echo " selected";?>>17th</option>
            <option value="18"<? if ($d['mday'] == "18") echo " selected";?>>18th</option>
            <option value="19"<? if ($d['mday'] == "19") echo " selected";?>>19th</option>
            <option value="20"<? if ($d['mday'] == "20") echo " selected";?>>20th</option>
            <option value="21"<? if ($d['mday'] == "21") echo " selected";?>>21st</option>
            <option value="22"<? if ($d['mday'] == "22") echo " selected";?>>22nd</option>
            <option value="23"<? if ($d['mday'] == "23") echo " selected";?>>23rd</option>
            <option value="24"<? if ($d['mday'] == "24") echo " selected";?>>24th</option>
            <option value="25"<? if ($d['mday'] == "25") echo " selected";?>>25th</option>
            <option value="26"<? if ($d['mday'] == "26") echo " selected";?>>26th</option>
            <option value="27"<? if ($d['mday'] == "27") echo " selected";?>>27th</option>
            <option value="28"<? if ($d['mday'] == "28") echo " selected";?>>28th</option>
            <option value="29"<? if ($d['mday'] == "29") echo " selected";?>>29th</option>
            <option value="30"<? if ($d['mday'] == "30") echo " selected";?>>30th</option>
            <option value="31"<? if ($d['mday'] == "31") echo " selected";?>>31st</option>
           </select><?
           
           // Month
           
           ?><select name="<?=$fn?>_month">
                <option value="0"<? if ($d['mon'] == "0") echo " selected";?>>-</option>
                <option value="JAN"<? if ($d['mon'] == "1") echo " selected";?>>January</option>
                <option value="FEB"<? if ($d['mon'] == "2") echo " selected";?>>February</option>
                <option value="MAR"<? if ($d['mon'] == "3") echo " selected";?>>March</option>
                <option value="APR"<? if ($d['mon'] == "4") echo " selected";?>>April</option>
                <option value="MAY"<? if ($d['mon'] == "5") echo " selected";?>>May</option>
                <option value="JUN"<? if ($d['mon'] == "6") echo " selected";?>>June</option>
                <option value="JUL"<? if ($d['mon'] == "7") echo " selected";?>>July</option>
                <option value="AUG"<? if ($d['mon'] == "8") echo " selected";?>>August</option>
                <option value="SEP"<? if ($d['mon'] == "9") echo " selected";?>>September</option>
                <option value="OCT"<? if ($d['mon'] == "10") echo " selected";?>>October</option>
                <option value="NOV"<? if ($d['mon'] == "11") echo " selected";?>>November</option>
                <option value="DEC"<? if ($d['mon'] == "12") echo " selected";?>>December</option>
              </select><?
           
           // Year
           
           ?><select name="<?=$fn?>_year">
              <option value="0">-</option>
              <? for ($i = 1955; $i < 2020; $i++ ) {?><option value="<?=$i?>"<? if ($d['year'] == $i) echo " selected";?>><?=$i?></option><? } ?>
              </select><?   
    }
    
    function decode_datedropdown($fn)
    {
        global $HTTP_POST_VARS;
        $d = $HTTP_POST_VARS[$fn . "_day"] . "-" . $HTTP_POST_VARS[$fn . "_month"]. "-". $HTTP_POST_VARS[$fn . "_year"];
        if ($d == '0-0-0') 
        {
            return "";
        }
        else
        {
            return strtotime($d);
        }
    }

Re: Some help needed with date dropdowns

Posted: Wed Mar 04, 2009 5:10 pm
by Reviresco
Without actually going through the code, I would assume that the person wrote "PHP 4 only" to warn about something that didn't exist in PHP 3.

PHP 4 was released in 2000; PHP 5 was released in 2004.

Actually, upon further review, it's probably getdate(), which is PHP 4 and above.

Re: Some help needed with date dropdowns

Posted: Thu Mar 05, 2009 4:10 am
by fluvius
Thanks very much for your help Reviresco.

I've checked further with the host and they are using PHP4, so it must be something else that's stopping the site functioning correctly.
Oh well, back to the drawing board!

Tony.
Reviresco wrote:Without actually going through the code, I would assume that the person wrote "PHP 4 only" to warn about something that didn't exist in PHP 3.

PHP 4 was released in 2000; PHP 5 was released in 2004.

Actually, upon further review, it's probably getdate(), which is PHP 4 and above.