将MySQL DATETIME转换为PHP UNIXTIME

将MySQL DATETIME转换为PHP UNIXTIME,php,datetime,unix-timestamp,Php,Datetime,Unix Timestamp,将MYSQL日期时间转换为PHP UNIXTIME的最简单方法是什么 例如: 来自mysql的数据是2012-12-31 23:59:59然后转换成UNIXTIME $dateTime = '2012-12-31 23:59:59'; // convert this to unixtime stamp $unixTime = strtotime($dateTime); // this not work as expected 我尝试了strotime,但它不能正常工作 SELECT UNIX_

将MYSQL日期时间转换为PHP UNIXTIME的最简单方法是什么

例如:

来自mysql的数据是
2012-12-31 23:59:59
然后转换成UNIXTIME

$dateTime = '2012-12-31 23:59:59'; // convert this to unixtime stamp
$unixTime = strtotime($dateTime); // this not work as expected
我尝试了strotime,但它不能正常工作

SELECT UNIX_TIMESTAMP(mydatefield);

我没有测试过,所以我准备好接受落选了

没有测试它,所以我已经准备好接受否决票。

你可以做:

list($date, $time) = explode(' ', $yourMySQLDateTime);
list($year, $month, $day) = explode('-', $date);
list($hour, $minute, $second) = explode(':', $time);

$timestamp = mktime($hour, $minute, $second, $month, $day, $year); 
你可以做:

list($date, $time) = explode(' ', $yourMySQLDateTime);
list($year, $month, $day) = explode('-', $date);
list($hour, $minute, $second) = explode(':', $time);

$timestamp = mktime($hour, $minute, $second, $month, $day, $year); 

strotime
无法按预期工作的原因是您必须指定时区。如果你的时区是格林尼治标准时间,那就是

$dateTime = '2012-12-31 23:59:59';
echo strtotime($dateTime . " GMT")

strotime
无法按预期工作的原因是您必须指定时区。如果你的时区是格林尼治标准时间,那就是

$dateTime = '2012-12-31 23:59:59';
echo strtotime($dateTime . " GMT")


MySQL有一个
UNIX\u TIMESTAMP
函数。什么是PHP UNIXTIME类型?我总是将时间戳存储为整数。@GBD我编辑添加的示例代码。@hobbs不,这应该在PHP中完成,而不是在MySQL中query@WaleedKhan我更喜欢将它存储在DATETIME中,因此如果我从MySQL中看到它,它仍然可读。MySQL有一个
UNIX\u TIMESTAMP
函数。PHP UNIXTIME类型是什么?我总是将时间戳存储为整数。@GBD我编辑添加的示例代码。@hobbs不,这应该在PHP中完成,而不是在MySQL中query@WaleedKhan我更喜欢将它存储在DATETIME中,因此如果我从MySQL中看到它,它仍然可读。请查看关于我的问题的评论,我需要用PHP完成。不是mysql查询。@GusDeCooL最好的方法是通过mysql查询而不是PHP进行查询。@WaleedKhan从语义上讲,您想从数据库中提取unix时间戳。因此,您应该设计查询来提取时间戳。此外,它的运行速度可能会稍微快一些,但对于带有多个返回行和操纵命令的查询来说,这一点更为明显。如果您正确设置
date\u default\u timezone\u set()
,您的示例将正常工作,并返回与接受答案相同的时间戳。请查看关于我的问题的注释,我需要在PHP中完成。不是mysql查询。@GusDeCooL最好的方法是通过mysql查询而不是PHP进行查询。@WaleedKhan从语义上讲,您想从数据库中提取unix时间戳。因此,您应该设计查询来提取时间戳。此外,它的运行速度可能会稍快一些,不过对于具有多个返回行和操纵命令的查询来说,这一点更为明显。如果正确设置
date\u default\u timezone\u set()
,则示例会工作并返回与接受答案相同的时间戳