You can easily convert the date using strtotime function of php :
date_default_timezone_set('UTC');
$date = '2011-10-02T23:25:42Z';//(aka ISO 8601 in UTC)
$time = strtotime($date); //time is now equals to the timestamp
$converted = date('l, F jS Y \a\t g:ia', $time); //convert to date if you prefer, credit to Marc B for the parameters
Now you would simply insert your date in MySQL using timestamp or datetime depending on which one fit the most your needs. Here the most important things you should know about both types.
Timestamp
- Range of '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC
- Affected by the time-zone setting.
- 4 bytes storage
- allow
on update current_timestamp on columns for all versions.
- Index is way faster
NULL is not a possible default value
- Values are converted from the current time zone to
UTC for storage, and converted back from UTC to the current time-zone for retrieval.
Datetime
- Range of '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
- Constant (time-zone won't affect)
- 8 bytes storage
- allow update on columns only as of version
5.6.5
Which is best for comparison (eg. getting records between two
dates/times) and ordering the results from queries? What about if the
database is very large?
According to the previous points I stated, then you should use timestamp for a very large database as the storage is smaller, and the index faster which will give you better performance for comparison. However, you MUST MAKE SURE your date will fit the limits of the timestamp I previously mentioned, else you have no choice and must use datetime.
Documentation for strtotime : http://php.net/manual/en/function.strtotime.php
And please, for the sake of SO's answerer who keep repeating every day to not use the mysql* DEPRECATED functions, please use PDO or mysqli* when you will do your inserts.
http://php.net/manual/en/book.pdo.php
http://php.net/manual/en/book.mysqli.php