我正在使用php和mysql。当我将时间值插入本地主机上的 mysql 数据库时,将应用正确的时间。我正在使用该now()
功能。
当我将时间值插入我的虚拟主机帐户上的 my_sql 数据库时,它显示了错误的时区。
如果来自不同时区的用户发布了某些内容,并且我在我的时区查看它,我该如何设置它以便显示给用户的时间与用户查看它的位置相关。
$sql1="INSERT INTO notifications (stamp)
VALUES (now());
我正在使用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()