将非常规字符串转换为mysql datetime?

时间:2012-09-19 18:01:57

标签: php mysql datetime

我是php的新手,我想知道如何转换这个字符串:

Tue Jan 17 09:17:15 CST 2012

采用适合

的MySQL日期时间格式(24小时)的格式
01-17-2009 09:17:15

我发现MySQL函数FROM_UNIXTIME()据说可以从PHP时间戳转换为MySQL DateTime。我的问题是将原始字符串转换为正确的PHP时间戳格式。

3 个答案:

答案 0 :(得分:2)

快速尝试:

$dt = 'Tue Jan 17 09:17:15 CST 2012';
$ts = strtotime( $dt );

echo date('Y-m-d G:i:s', $ts);

输出:2012-01-17 16:17:15

时差来自时区。我的服务器是UTC + 1,CST是UTC-6

答案 1 :(得分:0)

你也可以使用mysql函数,但我不确定时区。

select DATE_FORMAT(STR_TO_DATE('Tue Jan 17 09:17:15 CST 2012','%a %b %e %h:%i:%s CST %Y'),'%m-%d-%Y %h:%i:%s');

答案 2 :(得分:0)

如果你有php> = 5.3,你可以使用\ DateTime :: createFromFormat。我更喜欢这个解决方案而不是strtotime,因为操纵日期你使用的东西意味着“日期”而不是整数。

$date = \DateTime::createFromFormat('D M d h:i:s T Y',$dt);