JavaScript-如何获取PHP服务器的正确时间
JavaScript - How can i get the correct time of PHP server?
我需要显示一个以PHP SERVER DATE为中心的计时器,这里是date1。(这是关于在比利时时间举行的一次会议,来自不同国家的其他人参加会议,实时查看会议的持续时间。)
date1变量值来自比利时的PHP服务器。但用户在美国、中东、亚洲、澳大利亚,浏览器的日期和PHP服务器的日期不一样。
如何在不作为比利时日期/时间爬网到服务器的情况下获得date2值?这样我就可以在date2实时显示gape了。
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);
我认为您可以使用这个答案:获取客户端';使用JavaScript中的时区来获取客户端(浏览器)时区偏移量,php服务器可以将此信息与date1一起发送,从这里可以很容易地进行转换。
另一种方法可能是,服务器还发送当前时间(类似于Datehttp标头),客户端可以将客户端获得http时的时间保存在变量中,然后计算服务器时钟和客户端时钟之间的差。这样,它不仅可以计算出比利时的上午9点是纽约的凌晨2点,而且在客户端上显示一个计数器,该计数器将与服务器时间同步(这意味着即使客户端的时钟关闭2分钟,计数器也可以与服务器的时钟精确,因此所有人都会看到相同的计数器,无论他们的客户端时钟不准确(这是一个很好的功能,即使我们没有想到不同的时区)
因此,在您的php中,除了date1="10-01-2016 09:00:00"之外,您还将发送
server_date="<?php date('...') ?>"
使用http://php.net/manual/en/function.date.php对于格式字符串:)
然后在onLoad回调一开始的javascript中,您将执行以下操作:
client_date = new Date();
现在你可以做你的算术(在伪代码中):
elapsed_since_start = date1 + (server_date - client_date)
当然,如果你需要考虑不同的时区,那么你也需要考虑:
elapsed_since_start = (date1-server_tz_offset) + ((server_date-server_tz_offset) - (client_date-client_tz_offset))
- 显示服务器时间,包括时区偏移
- 获取用户和服务器时间之间的时间差
- 根据服务器时间禁用启用单选按钮
- 以特定时区的javascript获取服务器时间
- 获取Web服务器时间并将其显示在网页上的正确方法
- javascript客户端时间到php服务器时间
- 显示客户端时间,而不是 javascript 中的服务器时间
- 如何获取本地时间,而不是服务器时间
- 在 aspx 页上显示实时时钟(使用服务器时间)
- 如何获取服务器时间并每秒更新
- 如何在特定的服务器时间在 php 页面上使用 javascript 执行 iframe
- 服务器时间而不是客户端时间 JAVASCRIPT
- 带有服务器时间PHP的Javascript时钟
- 从固定的服务器时间启动图像交换JavaScript
- jQuery:如何将UTC的服务器时间转换为Web浏览器的本地时间
- 客户端和服务器时间之间的差异
- 内置JavaScript / Greasemonkey函数来获取服务器时间
- 如何组合两个 javascript 以包含服务器时间而不是用户时间的 ajax 调用
- 如何使这个javascript函数实际收集服务器时间和倒计时,直到事件开始而不是浏览器/客户端时间
- FlipClock - 使用服务器时间而不是客户端时间