【发布时间】:2018-03-29 14:25:21
【问题描述】:
我正在我的计算机上开发一个时钟应用程序。当我单击打卡时,保存在数据库中的时间如果与我计算机上的时间不同。我正在使用 localhost 来开发应用程序。我知道这可能是时区问题。我发现了这个问题:is the time of computer and localhost same?,并按照步骤操作,但没有成功。我正在使用 WampServer 作为 Web 服务器。我浏览了 php.ini 文件并对 date.timezone 设置进行了更改,但没有任何改变。我确实安装了三个版本的 php,并对每个版本进行了更改。我还发现 Wamp 对链接到 php4apache.ini 的 php.ini 文件使用了符号链接,并在链接文件中进行了更改,但仍然没有任何效果。
我尝试按照此处的说明检查 php 和 mysql 中的时间:Date/Time differences between MySql and PHP?。发现mysql设置为SYSTEM,php设置为UTC。 这告诉我我没有正确设置 PHP。所以我的问题是,PHP 中是否还有其他地方可以设置时区? WAMP中是否有设置时区的地方,或者单独在php中完成?
感谢您的帮助。特洛伊
【问题讨论】:
-
您确定差异是基于时区而不是缺少 NTP 同步吗?它比几分钟大吗?
-
是的,大约 5 小时的差异,这表明这是一个时区问题。
-
好的,很高兴知道。然后您应该决定是否要将数据存储在 GMT 中并在您的应用程序中进行转换。毕竟,您如何准确地插入数据?
-
在我从我的应用程序发送到服务器的 sql 中使用 CURRENT_TIME 函数。
-
我不确定你对
localhost的意思(它只是“当前机器”的标准别名)但是在同一台机器上运行的两个程序将使用相同的时钟和两个程序在不同机器上运行的不会。无论您尝试做什么,都需要确保只使用一个时钟进行计算。