为什么PHP时区在本地主机上是正确的,但在上传到服务器后不正确


why is php timezone is correct on local host, but incorrect after uploading to server?

我正在使用php和mysql。当我在本地主机上的 mysql 数据库中插入时间值时,应用了正确的时间。我暂时使用now()功能。

当我将时间值插入我的虚拟主机帐户my_sql数据库中时,它显示了错误的时区。

如果来自不同时区的用户发布了某些内容,而我正在按我的时区查看它,那么如何设置它,以便向用户显示的时间相对于用户查看它的位置。

$sql1="INSERT INTO notifications (stamp) 
            VALUES (now());

您的服务器位于不同的时区。

您可以在PHP和MySQL中设置时区。

date_default_timezone_set('America/Los_Angeles');

在 MySQL 中:

SET time_zone = 'America/Los_Angeles';

或者,您可以将时间存储为timestamp列,这些列在基础数据中始终是 UTC。

来自NOW()的文档:

该值以当前时区表示。

因此,如果本地计算机与主机的计算机位于不同的时区,则会看到不同的结果。

您可能需要考虑改用UTC_TIMESTAMP()。(我不清楚如果在适当的上下文中使用,这是否会返回DATETIME值,但这可能是您想要的。

您的网络服务器 php.ini 可能设置了不同的时区。

您可以通过 php 文件中更改它date_default_timezone_set()