获取服务器端时间和客户端时间之间的差异并显示它

Get the difference between a server side time and client side time and display it

本文关键字:时间 显示 之间 服务器端 客户端 获取      更新时间:2023-09-26

可能重复:
如何将javascript倒计时与服务器时间同步

我如何获得来计算服务器端时间和客户端时间之间的差异,然后将其显示在我的视图中,这是一个PHP页面。

让我说清楚一点。我有一个特定板球比赛开始的时间数据,存储在数据库中。现在,我想在我的视图(一个PHP页面(中显示这个时间和客户端浏览器中的时间之间的差异。我可以理解我需要为此编写一个javascript函数,但我如何从我的PHP代码中调用这个函数,并且我必须再次在我的视图中显示差异。

我对此感到困惑。

date.js非常方便地进行日期计算,并且可以以各种格式解析/显示日期。

用php将日期写入页面上的隐藏输入。以如下格式存储:YYYY/MM/DD hh:mm:ss。通过将隐藏字段的值传递给date构造函数来加载该日期:

var cricketDateField = document.getElementsById("cricketDateField");
var cricketDate = new Date(cricketDateField.value);

只需调用不带参数的date构造函数即可获取当前日期:

var now = new Date();

通过减去日期来获得以毫秒为单位的差异:

var msDiff = cricketDate - now;  // difference in milliseconds

然后,您可以手动解析毫秒,或者转换为日期并提取日期的部分以获得差异:

var diff = new Date(msDiff - 62167190400000);  // difference as a date
var years = diff.getYear();
var months = diff.getMonth();
var days = diff.getDate() - 1;
var hours = diff.getHours();
var minutes = diff.getMinutes();
var seconds = diff.getSeconds();
var msg = "There are " + years + " years, " +
                         months + " months, " +
                         days + " days, " +
                         hours + " hours, " +
                         minutes + " minutes, and " +
                         seconds + " seconds until the cricket match.";
document.getElementById("differenceMsg").innerHTML = msg;

我不知道这是否是正确的方法。。但你能做的是

var mytime=new Date();
var serverTime = new Date('<?php echo date('Y/m/d H:i:s')?>');
var difference  = (mytime - serverTime)/1000;
var url = 'setSessionData.php';
$.post(url,'dateDiff='+difference);

并且在setSessionData中只使用值并设置session。。当显示细节时,获得匹配时间

date('Y-m-d H:i:s',strtotime('+ '.$_SESSION['date_difference'].' sec', $matchTime));

使用mktime((计算$matchTime

将(new Date(((.getTime((从javascript发送到php脚本,并在php中使用time((函数。

$difference = time() - (int)$_GET['clientTime'];

这应该精确到客户端与服务器通话所需的时间。