是否有人坐在PHP函数上将format 0000-00-00 00:00:00(datetimesql)的日期转换为unix时间戳?
要在PHP 5.2中执行此操作,您可以执行以下操作:
$datetime = new DateTime(); echo $datetime->format('U');
从PHP 5.3开始,更新的方法是:
$datetime = new DateTime(); echo $datetime->getTimestamp();
另一个选项是你用SQL标记了这个问题:MySQL函数FROM_UNIXTIME
和UNIX_TIMESTAMP
- > MySQL手册
SELECT UNIX_TIMESTAMP(datetime_column) FROM table
这通常比PHP函数调用快.
@bartek - 正如您所说,PHP的strtotime功能非常适合这一点.它可以处理大多数常见的日期格式,包括"明天"或"+ 5个月"等字符串.
使用strptime()
解析的时间,把它变成一个结构化的阵列.
然后将结果传递给mktime()
函数以获取UNIX时间戳.
我在这里为您提供解决方案:
/* 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); }