簡體   English   中英

PHP imap在新紀元中從電子郵件獲取日期

[英]PHP imap get date from email in epoch time

這不像strtotime()那樣簡單。

我用php imap返回電子郵件的日期。 當我返回日期時,會得到以下格式:

21 May 2015 20:48:36 -0400
Fri, 15 May 2015 00:13:12 +0000
Fri, 7 Aug 2015 07:11:42 -0400 (EDT)
Fri, 4 Sep 2015 11:03:15 -0400
Mon, 10 Aug 2015 22:04:10 +0000
Tue, 14 Jul 2015 12:54:47 -0400
Sun, 21 Jun 2015 10:49:06 +0000
Fri, 12 Jun 2015 17:35:26 +0000
Thu, 27 Aug 2015 11:47:55 -0400
Mon, 20 Jul 2015 12:43:45 -0400
Fri, 18 Sep 2015 07:47:04 -0400 (EDT)
etc.

如您所見,日期並不完全一致。 其中一個日期沒有日期名稱(Fri)。 有些日期帶有(EDT)標簽,而其他日期則沒有。

我嘗試使用strtotime($date) ,但是我相信由於其中一些具有時區,因此會弄亂日期。

有沒有辦法將這些非常奇怪的時間轉換為時代時間?

您可以在將輸入作為時間字符串處理之前清理輸入:

$input = "21 May 2015 20:48:36 -0400
Fri, 15 May 2015 00:13:12 +0000
Fri, 7 Aug 2015 07:11:42 -0400 (EDT)
Fri, 4 Sep 2015 11:03:15 -0400
Mon, 10 Aug 2015 22:04:10 +0000
Tue, 14 Jul 2015 12:54:47 -0400
Sun, 21 Jun 2015 10:49:06 +0000
Fri, 12 Jun 2015 17:35:26 +0000
Thu, 27 Aug 2015 11:47:55 -0400
Mon, 20 Jul 2015 12:43:45 -0400
Fri, 18 Sep 2015 07:47:04 -0400 (EDT)";

$output = '';

$lines = explode("\n", $input);

foreach($lines as $line) {
    $output .= preg_replace('/(\w{3}, )|( \(\w{3}\))/', '', $line)."\n";
}

echo $output;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM