电子邮件标题上的php日期/时间查询

时间:2016-05-10 16:34:26

标签: php

我在电子邮件标题上有几个日期:

[date] => Tue, 10 May 2016 03:13:24 -0700
[MailDate] => 10-May-2016 10:13:24 +0000

我在时区上午10:13收到了电子邮件。

$d=strtotime("10-May-2016 10:13:24 +0000");
echo "Created date is " . date("Y-m-d h:i:sa", $d);

这是我得到的输出:

Created date is 2016-05-10 11:13:24am

这不应该显示时间为10:13:24 am?

2 个答案:

答案 0 :(得分:1)

简短回答

不,该代码中没有任何内容可以保证看到10:13:24而不是11:13:24。

<强>为什么

您正在使用+0000定义时区,因此无法保证结果的准确性。即使您的时区是GMT(+0000),您的脚本中也没有定义您的时区的内容。唯一明确的时区是字符串&#39> 时区的定义。

确保您的时区在PHP中永久设置,或暂时在此脚本中设置。

更改您的php.ini(进行永久性更改),或在执行与日期/时间相关的功能之前添加一行来设置您的时区:

date_default_timezone_set ( string $timezone_identifier );

http://php.net/manual/en/function.date-default-timezone-set.php

在脚本之前尝试,然后查看脚本输出的内容。如果所有设置都正确,您将获得适当的时间。

否则,您只需从+0000来电中删除strtotime()即可。

答案 1 :(得分:0)

尝试没有+0000部分:

$d=strtotime("10-May-2016 10:13:24"); echo "Created date is " . date("Y-m-d h:i:sa", $d);