我在电子邮件标题上有几个日期:
[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?
答案 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);