Is there anyone sitting on a PHP function to convert a date of format 0000-00-00 00:00:00(datetimesql) to unix timestamp?
6 Answers
Another option as you have tagged this question with SQL: the MySQL functions FROM_UNIXTIME and UNIX_TIMESTAMP -> MySQL manual
SELECT UNIX_TIMESTAMP(datetime_column) FROM table
This usually is faster than a PHP function call.
6 Comments
@bartek - As you noted, PHP's strtotime function is perfect for this. It can handle most common date formats, including strings like "tomorrow" or "+5 months".
3 Comments
I have a solution for you right here:
/* From MySQL datetime to Unix Timestamp 2003-12-30 23:30:59 -> 1072834230 */ function convertMysqlDateTimeToUnixTimeStamp($date) { $yr=strval(substr($date,0,4)); $mo=strval(substr($date,5,2)); $da=strval(substr($date,8,2)); $hr=strval(substr($date,11,2)); $mi=strval(substr($date,14,2)); $se=strval(substr($date,17,2)); return mktime($hr,$mi,$se,$mo,$da,$yr); } Comments
Use strptime() to parse the time and turn it into a structured array.
Then pass the results of that into the mktime() function to get a UNIX timestamp.
1 Comment
Encapusulating wvanbergen's solution into a function (for your convenience)
//Convert SQL datetime to unixtime -- by johnboiles function datetimeToUnixtime($datetime){ $result = mysql_query("select unix_timestamp('$datetime')"); $unixtime = mysql_fetch_array($result); return $unixtime[0]; }