1

我对 php 完全陌生,想知道如何转换这个字符串:

Tue Jan 17 09:17:15 CST 2012

转换为适合 MySQL 日期时间格式(24 小时)的格式

01-17-2009 09:17:15

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

4

3 回答 3

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

于 2012-09-19T18:12:24.740 回答
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');
于 2012-09-19T18:16:13.873 回答
0

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

$date = \DateTime::createFromFormat('D M d h:i:s T Y',$dt);
于 2012-09-19T18:22:23.607 回答