现在我的查询看起来像这样(相关部分):
UPDATE last_seen=NOW()
但它插入的时间比我的早 2 小时。有什么办法可以调整吗?
谢谢
在你的数据库上设置时区.. 看看这篇文章。https://stackoverflow.com/a/3451971/1227435
这是另一个很好的资源:
PHP和MySQL有时区问题
我建议你尝试这样的事情:
hidden input
收集用户的时区
<input type="hidden" name="offset" class="offset">
$('.offset').val(new Date().getTimezoneOffset());
然后在更新之前获取它并将其转换为这样的秒
数$offset = intval($_REQUEST['_offset']) * 60;
最后将其添加到time()
:
$now = time() + $offset;
执行上述操作,您将拥有一个变量,其中包含客户在其时区中的时间。如果您不想这样,并且希望每个人都有一个共同的时间,只需在您的index.php
中设置您的时区:
date_default_timezone_set('TIMEZONE IN HERE'); //Supported timezone list: http://www.php.net/manual/en/timezones.php
但是最好将其设置为php.ini
(时区)或更改服务器的时区(Debian/Ubuntu:dpkg-reconfigure tzdata
http://dev.mysql.com/doc/refman//5.5/en/time-zone-support.html 你需要
设置MySQL的时区概念。希望有帮助...
听起来MySQL和你不在同一个时区。
您有一些选择:
- 设置 MySQL 的时区。
- 使用 PHP 在存储之前设置日期。
- 存储为 UTC 时间戳,然后显示正确的本地时间。更多代码,但我推荐。