PHP设置正确的时区

时间:2012-11-29 05:48:10

标签: php timezone

我有以下代码

date("D j M g a", strtotime($start))." - " . date("ga", strtotime($finish));

`["Start"]=>
        string(21) "/Date(1354323600000)/"
        ["End"]=>
        string(21) "/Date(1354326300000)/"
      }`

上面的代码以我想要的正确格式输出Thu 1 Jan 12 pm - 12pm" string(22) "Thu 1 Jan 12 pm - 12pm,但我怎样才能得到正确的日期和时间。

Pacific/Auckland是我的时区

4 个答案:

答案 0 :(得分:1)

问题是,您传递给strtotime - /Date(1354323600000)/字符串的内容不是strtotime函数的有效格式。

实际上它是一个常规的unix时间戳,以毫秒为单位。

所以显而易见的解决方案是清除除数字之外的所有内容并将其除以1000:

$unix_time_with_ms = preg_replace('~\D~', '', $date);
echo date('Y-m-d H:i:s', $unix_time_with_ms / 1000);

答案 1 :(得分:0)

首选在php.ini文件中使用如下行设置默认时区:

date.timezone = "Pacific/Auckland"

如果由于某种原因您无法编辑php.ini,那么在您的PHP脚本之上您可以设置一个时区(仅对该脚本有效):

date_default_timezone_set('Pacific/Auckland');

答案 2 :(得分:0)

您可以使用

设置时区
date_default_timezone_set('America/Los_Angeles');

更多Link

答案 3 :(得分:0)

如果要在脚本中设置,请尝试

date_default_timezone_set - 设置脚本中所有日期/时间函数使用的默认时区

date_default_timezone_set('America/Los_Angeles');

但是如果你想使用与php.ini中设置相同的时区将是更好的解决方案

 date.timezone = "America/Los_Angeles"