4

我正在尝试将 DATETIME 转换为人们可以实际使用的东西。这是日期:

2013-09-05 11:52:10

我在用着:

date("D, d M Y", '2013-09-05 11:52:10');

正在变成:

Thu, 01 Jan 1970

对我来说毫无意义。

4

3 回答 3

7

您需要将日期转换为时间戳,然后再将其传递给 date()

$time = strtotime('2013-09-05 11:52:10');
echo date("D, d M Y", $time);
于 2012-09-05T17:15:57.943 回答
4

这应该是PHP代码吗?如果是这样,正确的是

date("D, d M Y", strtotime('2013-09-05 11:52:10'));

如果这与 MySql 有关,则使用正确的函数是DATE_FORMAT(但是,您拥有的是无效的 MySql 语法)。请说清楚。

于 2012-09-05T17:14:27.600 回答
2

PHP 的date()函数只能处理整数时间戳值;它不能处理字符串作为输入。

如果您需要从一种字符串日期格式转换为另一种,您应该使用以下DateTime::CreateFromFormat()方法:

$dateObj = DateTime::CreateFromFormat($inputString);
$outputString = $dateObj->Format('D, d M Y');

但是,我建议您编写查询以使用 MySQL 的UNIX_TIMESTAMP()函数将日期作为 PHPdate()函数可以处理的数字时间戳输入 PHP:

MySQL:

SELECT UNIX_TIMESTAMP(yourDateField) as yourDateField_timestamp FROM yourTable ...

然后你可以完全按照你的意愿编写 PHP:

PHP:

$dateObj = date('D, d M Y', $row['yourDateField_timestamp']);
于 2012-09-05T17:20:13.067 回答