【发布时间】:2011-04-28 16:02:49
【问题描述】:
我正在使用 php 的 date() 函数打印出一个时间,该时间是从 mysql 中检索的。打印出来的实际时间总是休息一小时。
我在打电话
date('H:i, d M Y', 100000)
我期待"03:46, 02 Jan 1970",但得到了"04:46, 02 Jan 1970"。
为什么?
【问题讨论】:
标签: 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"。
为什么?
【问题讨论】:
标签: php datetime date time timezone
之前设置时区,使用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);
03:46,1970 年 1 月 2 日
您当前的时区偏移量是+0100,这就是您拥有04:46, 02 Jan 1970 的原因。也不要忘记回到 70 年代很多国家并没有使用 DST 规则。
【讨论】:
您似乎遇到了时区问题。
您可以使用date_default_timezone_set('UTC'); 为您的 PHP 应用程序设置时区,将 UTC 替换为您需要的任何时间。这应该可以解决您的问题。
欲了解更多信息,请参阅:http://php.net/manual/en/function.date.php
【讨论】: