PHP imap 从电子邮件中获取纪元时间的日期
PHP imap get date from email in epoch time
不像strtotime()
那么简单...
我正在使用 php imap returning 电子邮件日期。当我 return 约会时,我得到这个格式:
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.
如您所见,日期并不完全一致。其中一个日期没有日期名称(星期五)。有些日期有 (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;
不像strtotime()
那么简单...
我正在使用 php imap returning 电子邮件日期。当我 return 约会时,我得到这个格式:
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.
如您所见,日期并不完全一致。其中一个日期没有日期名称(星期五)。有些日期有 (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;