PHP:重新格式化日期

时间:2017-06-30 17:56:28

标签: php date datetime

美好的一天,

我从imap_fetch_overview PHP函数获得以下日期:

$overview = imap_fetch_overview($inbox, $email_number, 0);

...

$date_event = $overview[0]->date;

输出日期为2017年6月30日星期五16:27:44 +0000(UTC)'

与此同时,我将默认时区设置如下:

date_default_timezone_set('Europe/Brussels');

我现在想要的是能够以dd.mm.yyyy HH:mm:ss格式检索我的$ date_event(当地时间,在我的情况下为30.06.2017 18:27:44)。

我因此尝试过:

$date_event_formated = $date_event('dd.mm.YYYY HH:ii:ss');

在调用' echo $ date_event_formated;'时,我唯一得到的是致命错误。

很抱歉,这个问题可能听起来很愚蠢,但我真的不明白我在这里做错了什么?在打扰你之前,我查看了参考网站http://php.net/manual/fr/function.date.php,但我可能错过了一些内容。

非常感谢您的时间和赞赏。

3 个答案:

答案 0 :(得分:2)

虽然Jakub的答案没有任何问题,但使用 php 5.3 以及你也可以使用DateTime::createFromFormat,使用精确的掩码来解析传入的日期字符串。

$oldDate = 'Fri, 30 Jun 2017 16:27:44 +0000 (UTC)';
$date = DateTime::createFromFormat('D, d M Y H:i:s T e', $oldDate);
echo $date->format('Y-m-d');

答案 1 :(得分:1)

strtotime()能够处理您拥有的格式并将其转换为时间戳。然后,您可以使用它以date()函数的任何格式格式化日期:

$date_event = 'Fri, 30 Jun 2017 16:27:44 +0000 (UTC)';
echo date('d.m.Y H:i:s',strtotime($date_event));
//outputs: 30.06.2017 18:27:44

以下是工作示例:

https://3v4l.org/obfNB

答案 2 :(得分:1)

use strtotime:

$date_event = 'Fri, 30 Jun 2017 16:27:44 +0000 (UTC)';
echo date('d.m.Y H:i:s',strtotime($date_event));