【发布时间】:2011-04-08 19:50:36
【问题描述】:
我正在开发一个网站应用程序的聊天信使。对于我的概念,我避免使用时区。
当用户发布消息时,我使用 php 获取我当前的服务器日期/时间并将其保存到数据库中。
要向用户显示所有消息的时间,我只需要找出服务器时间和用户系统时间之间的差异。假设不同的是 3 小时,我只需要使用 mysql 从数据库中检索记录的服务器时间,然后添加 3,例如:$message-time-display = $server-time-of-message-posted + $different。
对于此解决方案,虽然用户的计算机时间可能不正确,但不会影响保存在我的数据库中的时间记录。当用户更正计算机时间时,它将显示正确的时间。这个解决方案可靠吗?如果是这样,为什么没有人这样做?为什么这么多人使用 GMT 或时区?也许我错过了一些重要的问题?
【问题讨论】:
-
由于第 2 步,您无法使用 PHP 执行此操作。PHP 无法知道用户计算机上的时间。你需要 Java 才能抓住它。
-
感谢您告知我这件事。不用担心,我可以使用 javascript 来抓取它,然后通过 $local_time = "";将 javascript 变量传递给 php 变量>
-
哼,那只会把字符串 "";在 var $local_time 中。要将数据发送回 PHP,您需要使用某种形式的 AJAX。
-
是的,您需要使用 AJAX,PHP 会在 Java 运行在客户端机器上之前被解析并提供服务。
-
我没有使用ajax,我使用jQuery.get("chktimedif.php?usertime="+usertime, function(data) { });将javascript变量传递给php,以便php可以使用mysql SELECT TIMEDIFF ('$usertime','$servertime')在服务器时间和客户端时间之间进行数学计算