Log in

View Full Version : Adding Date from a form into database in a date format


Quarterbore
09-09-2006, 06:37 AM
I am programing a specialized review database and one of the items I want to capture is the DATE when the person was at the place they are reviewing. I am planning to add a series of pick lists for "Month", "Day", and "YEAR" but I would like to be able to convert this mm-dd-yyyy data into a MYSQL date format.

The reason this is important is for searching so that I can allow my members to search for reviews for "latest visit first" or "All reviews from visits in the past year" where the Timenow()-$visitdate type of code could be used...

So, can someone help me understand how I can convert Month-Day-Year values to a MYSQL friendly date format that I can use for this?

Would it be possible for me to add dates with some of this information missing (say a user knows they are reviewing something from June of 2005)?

I found the following as a reference but this is just a little complicated for an amateur like myself:

http://www.databasejournal.com/features/mysql/article.php/10897_2172731_1

So, if I use php to create a text string as (perhaps as follows)

// $yyyy = year as input
// $mm = month as input
// $dd = day as input

$date_of_visit .= $yyyy;
if ($mm)$date_of_visit .= '-' . $mm;
if ($mm AND $dd)$date_of_visit .= '-' . $dd;

Then, can I use the following to save this date into my database?

INSERT INTO review_table(date) VALUES($date_of_visit)

Now, if I do this, will this allow me to use this data to perform calculations and such using the TIMENOW date? Do I need to force my users to have the Month and Day (I can advise users to just use Jan or 1st if unknown)...

Thanks for any help!

Sorry, I realized I got this in the wrong forum....

I am still trying to figure this out and found the gmmktime function as follows:

http://www.w3schools.com/php/func_date_gmmktime.asp

gmmktime(hour,minute,second,month,day,year,is_dst)

... so in my example, would this work?

$date_of_visit = gmmktime(0,0,0,$mm,$dd,$yyyy);