I see a lot of people in forums and on my training courses asking about the best-of-the-the-part to manage dates stored I n a MySQL database and used in PHP. Three options follow, but first the problem.
PHP uses UNIX timestamps for all its date functionality. It has methods to convert these timestamps into pretty much any text format you could want but internally it uses the time Stamp format. A timestamp is simply an integer. Specifically, it's the number of seconds that has elapsed since midnight on January 1st 1970 (Greenwich Mean Time).
MySQL has three date types for use in columns. These is DATETIME, DATE, and TIMESTAMP. DATETIME Columns Store date and time as a string in the form Yyyy-mm-dd HH:MM:SS (e.g. 2006-12-25 13:43:15). Date columns use just the date part of this format–yyyy-mm-dd (e.g. 2006-12-25). TIMESTAMP columns, despite their name, is nothing like the Unix timestamps used in PHP. A TIMESTAMP column is simply a DATETIME column, automatically updates to the current time every time the contents of T Hat record is altered. (That's a simplification but broadly true and the details is not important here). In particular, since version 4.1 of MySQL the TIMESTAMP format is exactly the same as the DATETIME format.
So the problem is what to work with these-very different date formats–the PHP timestamp integer and the MySQL datetim E string. There is three common solutions ...
One common solution is to store the dates in DATETIME fields and use PHPs date () and Strtotime () functions to convert Betwe En PHP timestamps and MySQL DateTimes. The methods would be used as follows-
$mysqldate = Date (' y-m-d h:i:s ', $phpdate);
$phpdate = Strtotime ($mysqldate);
Our second-option is-let MySQL does the work. MySQL have functions we can use to convert the data at the point where we access the database. Unix_timestamp would convert from datetime to PHP TIMESTAMP andfrom_unixtime would convert from PHP TIMESTAMP to DateTime. The methods is used within the SQL query. So we insert and update dates using queries like this-
$query = "UPDATE table SET
Datetimefield = From_unixtime ($phpdate)
WHERE ... ";
$query = "Select Unix_timestamp (Datetimefield)
From table WHERE ... ";
Our last option was simply to use the PHP timestamp format everywhere. Since a PHP timestamp is a signed integer with the use of an integer field in MySQL to store the timestamp in. This is the There s no conversion and we can just move PHP timestamps into and out of the database without any issues at all.
Be aware, however, so by using an integer field to store your dates you lose a lot of functionality within MySQL because MySQL doesn ' t know that your dates is dates. You can still sort records in your date fields since PHP timestamps increase regularly NY of MySQL ' s date and time functions on the data so you'll need to use from_unixtime to get a MySQL DATETIME for the FU Nction to work on.
However, if you ' re just using the database to store the date information and any manipulation of it would take a place in PHP Then there ' s no problems. Www.2cto.com
So-finally we come to the choice of which. For me, if you don ' t need to manipulate the dates within MySQL then there's no contest and the last option was the best. It's simple-to-use and was the most efficient in terms of storage space in the data table and speed of execution when Readi Ng and writing the data.
However, some queries'll be more complicated because your date was not in a date field (e.g. select All users who's birth Day is today) and your may lose out in the long run. If the case it could be better to use either option 1 or 2. Which of these you use depends on whether you ' d rather place the work on MySQL or PHP. I tend to with option 2 but there's no right or wrong answer–take your pick.
So-summarise, for those who's ve skipped straight to the last paragraph, most of the time I use option 3 but occasionally I use option 2 because I need MySQL to know the field contains a date.
Author: chenjie3392593
http://www.bkjia.com/PHPjc/478085.html www.bkjia.com true http://www.bkjia.com/PHPjc/478085.html techarticle I see a lot of people in forums and on My training courses asking about the best by (or any) to manage dates Stor Ed in a MySQL database and used in PHP. Three options follow, b ...