将DATETIME转换为人类可读日期

时间:2012-09-05 17:12:44

标签: datetime php

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

2013-09-05 11:52:10

我正在使用:

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

转变为:

Thu, 01 Jan 1970

对我没用。

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:1)

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

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

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

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

MySQL的:

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

然后您可以完全按照自己的意愿编写PHP:

PHP:

$dateObj = date('D, d M Y', $row['yourDateField_timestamp']);