我对 php 完全陌生,想知道如何转换这个字符串:
Tue Jan 17 09:17:15 CST 2012
转换为适合 MySQL 日期时间格式(24 小时)的格式
01-17-2009 09:17:15
我发现 MySQL 函数 FROM_UNIXTIME() 据说可以将 PHP 时间戳转换为 MySQL DateTime。我的问题是将原始字符串转换为正确的 PHP 时间戳格式。
快速尝试:
$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
您也可以使用 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');
如果您的 php >= 5.3,您可以使用 \DateTime::createFromFormat。我更喜欢这个解决方案而不是 strtotime 解决方案,因为你使用意味着“日期”而不是整数的东西来操纵日期。
$date = \DateTime::createFromFormat('D M d h:i:s T Y',$dt);