美好的一天,
我从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,但我可能错过了一些内容。
非常感谢您的时间和赞赏。
答案 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
以下是工作示例:
答案 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));