我正在使用php和mysql。当我在本地主机上的mysql数据库中插入时间值时,将应用正确的时间。我正在使用now()
功能。
当我将时间值插入到我的网络托管帐户的my_sql数据库中时,它会显示错误的时区。
如果来自不同时区的用户发布了某些内容,并且我正在我的时区中查看,我该如何设置它以便向用户显示的时间相对于用户从中查看的时间。
$sql1="INSERT INTO notifications (stamp)
VALUES (now());
答案 0 :(得分:6)
您的服务器位于不同的时区。
您可以在PHP和MySQL中设置时区。
date_default_timezone_set('America/Los_Angeles');
在MySQL中:
SET time_zone = 'America/Los_Angeles';
或者,您可以将时间存储为timestamp
列,这些列始终是基础数据中的UTC。
答案 1 :(得分:2)
来自the documentation for NOW()
:
该值以当前时区表示。
因此,如果您的本地计算机与主机的计算机位于不同的时区,则将看到不同的结果。
您可能需要考虑使用UTC_TIMESTAMP()
。 (我不清楚如果在适当的上下文中使用它是否会返回DATETIME
值,但这可能是你想要的。)
答案 2 :(得分:0)
您的网络服务器php.ini可能设置了不同的时区。
在php文件中更改它