我有一个问题与我的日期时间,因为当我使用php date()
它是提前1小时到我的文件或mysql服务器。
我使用SSH检查了服务器时间,结果与我的mysql相同。
$curdatetime = date("Y-m-d H:i:s"); //<--- 1hr advance
$sqlqt = 'SELECT NOW() AS time_rs'; //<--- correct result
这是一个服务器设置吗?
测试结果(几分钟前当我发布的问题):日期(日):2011-04-17 06:18:09
MySQL:2011-04-17 05:18:09//<——与ssh
谢谢。
是的,这是由服务器设置引起的。
首先检查date_default_timezone_get
返回的内容。然后按偏好顺序检查时区的源代码(文档中给出了它们),直到找到该值的来源。
最后,如果你不想打乱全局设置,要么改变这个设置,要么使用date_default_timezone_set
在脚本中设置时区。
您的服务器可能有不同的时区。
你可以通过更改服务器的时区来"修复"这个问题。
最好的解决方案是只使用UTC时间而不使用本地时间。
MySql and UTC:
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html function_utc-time
PHP和UTC:
http://php.net/manual/en/function.gmdate.php把我的2美分扔在这里…
我有同样的问题(2小时的偏移),但我的时区设置正确。我终于解决了以下代码的问题。我希望这对将来的人有所帮助。
echo gmdate("Y/m/d H:i:s") . "<br />";
$timestamp = time()+date("Z");
echo gmdate("Y/m/d H:i:s",$timestamp);
输出:
2014/07/01 09:57:20
2014/07/01 11:57:20