我正在使用php的date()
函数打印出一个从mysql中检索的时间。打印出来的实际时间总是一小时。
我正在打电话
date('H:i, d M Y', 100000)
我期待"03:46, 02 Jan 1970"
,但得到了"04:46, 02 Jan 1970"
。
为什么?
答案 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