【发布时间】:2016-04-14 19:06:00
【问题描述】:
我需要显示 PHP SERVER DATE 的中心计时器,这里是 date1。 (它是关于在比利时时间设置的会议和来自不同国家的其他人加入会议以实时查看会议持续时间。)
date1 变量值来自位于比利时的 PHP 服务器。 但是用户在美国,米德尔东部,亚洲,澳大利亚,并且浏览器日期与PHP服务器日期不同。
如何在不作为比利时日期/时间爬取到服务器的情况下获取 date2 值?这样我就可以在 date2 上实时显示差距。
var date1 = new Date("10-01-2016 09:00:00"); // Meeting at PHP SERVER date
var date2 = new Date("10-01-2016 09:30:32"); // User joined remotely but Browser date is wrong here
var diff = date2.getTime() - date1.getTime();
var msec = diff;
var hh = Math.floor(msec / 1000 / 60 / 60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec / 1000 / 60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec / 1000);
msec -= ss * 1000;
alert(hh + ":" + mm + ":" + ss);
【问题讨论】:
-
通常最简单的方法是让所有 DB/PHP/Server 端服务器使用相同的时区,例如 UTC。然后,如果您需要本地化时间/日期,请为每个用户执行此操作。
-
在服务器端仅设置为比利时时区。所以 date1 的值是在用户首次登录时从服务器获取的。但问题是我现在如何告诉 date2 他必须显示比利时的时间(不是从服务器抓取,而是从本地抓取)
-
您是否希望所有用户看到会议已经进行了多长时间,或者距离会议开始/停止还有多长时间,而不实际显示绝对时间?是这个问题吗?如果你能给出一个更详细的例子,以及浏览器中的输出应该是什么,那就太好了。
-
是的 - 我需要向美国、亚洲、中东用户(所有)显示会议进行了多长时间。所以每个人都知道会议是在上午 9 点,但它持续了 2 小时 00:02:03,就像这样。
标签: javascript php google-chrome datetime opera