如何计算服务器端时间和客户端时间之间的差异,然后在我的视图中显示它,这是一个PHP页面。
让我说清楚一点。我有一个特定板球比赛的时间数据,它存储在数据库中。现在,我想在我的视图中显示客户端浏览器中这个时间和时间之间的差异,这是一个PHP页面。我可以理解我需要为此编写一个javascript函数,但是如何从我的PHP代码中调用此函数,并且我必须在我的视图中显示差异。
我对此感到困惑。
答案 0 :(得分:2)
date.js非常便于日期计算,可以解析/显示各种格式的日期。
答案 1 :(得分:1)
将您在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;
答案 2 :(得分:1)
我不知道这是不是正确的方法..但你可以做的是
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中只使用值并设置会话..并在显示详细信息时获取匹配时间
date('Y-m-d H:i:s',strtotime('+ '.$_SESSION['date_difference'].' sec', $matchTime));
使用mktime()计算$ matchTime
答案 3 :(得分:0)
从javascript发送(new Date())。getTime()到php脚本,并在php中使用time()函数。
$difference = time() - (int)$_GET['clientTime'];
这应该准确到客户端与服务器通信所需的时间。