php日期偏移

时间:2011-04-28 16:02:50

标签: php datetime date time timezone

我正在使用php的date()函数打印出一个从mysql中检索的时间。打印出来的实际时间总是一小时

我正在打电话

date('H:i, d M Y', 100000)

我期待"03:46, 02 Jan 1970",但得到了"04:46, 02 Jan 1970"

为什么?

2 个答案:

答案 0 :(得分:6)

之前使用date_default_timezone_set()设置时区,因为date()函数取决于时区设置(来自php.ini或由代码设置)

根据您当前的时区返回日期/时间。

使用

检查您的实际时区
echo date_default_timezone_get();

使用

设置(更改)它
date_default_timezone_set('UTC'); # UTC is just an example

有关PHP check this link中支持的时区的完整列表。

实施例

date_default_timezone_set('UTC');
echo date('H:i, d M Y', 100000);

输出:

  

1970年1月2日03:46

您当前的时区偏移量为+0100,这就是您04:46, 02 Jan 1970的原因。另外不要忘记,回到70年代,很多国家都没有使用DST规则。

参考

答案 1 :(得分:3)

看起来你遇到了时区问题。

您可以使用date_default_timezone_set('UTC');为您的PHP应用设置时区,将UTC替换为您需要的任何内容。这应该可以解决你的问题。

有关详细信息,请参阅:http://php.net/manual/en/function.date.php