I have found a proper solution to my “problem” but even after reading mysql pages, I don’t understand the logic behind it.
I currently store registration information in my system in a “datetime” formatted field in one of my tables (YYYY-MM-DD hh:mm:ss).
When I want to display the data on one of my php pages, simply posting the exact field data shows the format mentioned above.
I would THINK simply using date("Y-m-d",$row["DATE"]) where $row["DATE"] corresponds to the particular row value would return the desired format.
Instead I have to use:date("Y-m-d", strtotime($row["DATE"])).
Why is this? My $row["DATE"] field is not a string in the first place. Should I be able to simple rearrange the data stored in a datetime field? Wasn’t that the purpose of rebuilding my entire tableset to accomodate datetime?
MySQL has a built in function called date_format which you can use to display the date how you want to.
The manual has the list of formats and the variables needed to display it that way. Using this method there will be no need to have PHP convert it etc. Plus it is less code on PHP side for something MySQL can handle easily.
EDIT
Sorry, just read you were looking for an explanation.
PHP’s
datefunction takes in a UNIX timestamp, which MySQL is not using. MySQL uses a real date format IE:YYYY-MM-DD HH:MM:SS, as you know, this is to be compliant for years later. The UNIX timestamp has a limited range from something like 1969 to 2037 that it is valid for, which makes it really useful for “timestamping” of items such as a chat box message or items they are not expected to be around post those dates, where as the MySQLDATETIMEshould not die out until the year changes to 5 digits or the world ends.Read the WIKI on UNIX timestamp for more information on it.