[英]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.