PHP 设置正确的时区



>我有以下代码

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是我的时区

问题是您传递给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);

更喜欢在php.ini文件中设置默认时区,如下所示:

date.timezone = "Pacific/Auckland"

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

date_default_timezone_set('Pacific/Auckland');

您可以使用以下方法设置时区

date_default_timezone_set('America/Los_Angeles');

更多链接

如果你想在脚本中设置,试试

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

date_default_timezone_set('America/Los_Angeles');

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

 date.timezone = "America/Los_Angeles"

相关内容

  • 没有找到相关文章

最新更新