1

由于某种原因,该date()函数没有输出时区调整的日期/时间。在调试这个时,我发现了一个奇怪的差异。我的时区定义php.iniAmerica/New_York. 当我这样称呼时:

echo ini_get('date.timezone');

我得到America/New_York了,这是我所期望的。但是,当我这样称呼时:

echo date_default_timezone_get();

我明白了UTC。这似乎是负责date()返回 UTC 时区时间的方法。为什么会这样?如何让 PHP 尊重在 中找到的时区php.ini

更新

我最终只是想从date('Y-m-d G:i:s'). 由于我的时区是在 php.ini 中设置的,我如何从中获取正确的日期/时间date()

4

1 回答 1

0

如果我在您的问题中理解尊重的含义,您会想知道这date_default_timezone_get()不是返回 ini 设置。您可以通过在 get 操作之前调用此行来更改它:

date_default_timezone_set(ini_get('date.timezone'));

另请参见示例 #2 从手册中获取时区的缩写,其中包括:

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');

上面的示例将输出:

America/Los_Angeles => America/Los_Angeles => PST
于 2013-08-23T14:38:07.537 回答