1

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

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

如果来自不同时区的用户发布了某些内容,并且我在我的时区查看它,我该如何设置它以便显示给用户的时间与用户查看它的位置相关。

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

3 回答 3

6

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

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

date_default_timezone_set('America/Los_Angeles');

在 MySQL 中:

SET time_zone = 'America/Los_Angeles';

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

于 2012-05-11T15:30:23.090 回答
2

文档中NOW()

该值以当前时区表示。

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

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

于 2012-05-11T15:31:42.090 回答
0

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

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

于 2012-05-11T15:31:26.553 回答