0

php 的 imap_fetch_overview() 日期键是这样的日期格式:

Thu, 22 Aug 2013 07:53:32 -0400

哎呀。是否可以自定义日期的格式?我在文档中没有看到任何内容,所以我认为没有。我需要做的就是将其转换为 MySQL 的时间戳格式。

4

4 回答 4

4

如果不重写和重新编译源代码,就无法自定义包含的 PHP 函数/库。一个类可以被定制,或者继承和调整。但在这种情况下,您可以做的只是简单strtotime()的日期/时间。然后将其转换为 MySQL 日期时间。

$array=imap_fetch_overview();
$unixTimestamp=strtotime($array['date']);
echo date("Y-m-d H:i:s", $unixTimestamp);
于 2013-08-23T22:16:17.973 回答
1

您可以使用 strtotime 函数。此函数返回 unix 时间戳。

<?php
    $timestamp=strtotime("Thu, 22 Aug 2013 07:53:32 -0400");
?>

您可以使用 date 函数创建新的日期时间格式:

<?php
    echo date("d/m/Y H:i:s", strtotime("Thu, 22 Aug 2013 07:53:32 -0400"));
?>

更多信息:
http ://www.php.net/strtotime
http://www.php.net/date

于 2013-08-23T22:19:40.033 回答
1

除了strtotime()函数,我们还可以使用DateTimePHP 提供的类。只需将 imap_fetch_overview() 返回的日期字符串放入DateTime构造函数即可。示例如下:

<?php
    $result=imap_fetch_overview($mbox_stream,$emailnumber);
    $message_date=new DateTime($result[0]->date);//Put date result at DateTime constructor
    echo $message_date->format("Y-m-d H:i:s");//Formating the DateTime value to MySQL DATETIME format
?>
于 2014-07-16T07:39:08.190 回答
1

PHP 的 imap_fetch_overview 还将到达日期作为 udate 对象中的 Unix 时间戳返回。

另请参阅此处的对象数组:http: //php.net/manual/en/function.imap-fetch-overview.php

结果数组中可用对象的列表:

subject - the messages subject
from - who sent it
to - recipient
date - when was it sent
message_id - Message-ID
references - is a reference to this message id
in_reply_to - is a reply to this message id
size - size in bytes
uid - UID the message has in the mailbox
msgno - message sequence number in the mailbox
recent - this message is flagged as recent
flagged - this message is flagged
answered - this message is flagged as answered
deleted - this message is flagged for deletion
seen - this message is flagged as already read
draft - this message is flagged as being a draft
udate - the UNIX timestamp of the arrival date
于 2018-01-14T16:54:10.517 回答