2011-09-02 49 views
3

可能重复:
How to sync a javascript countdown with server time得到了一个服务器端的时间和客户端时间之间的差异,并显示它

我怎样才能获得计算服务器端的时间之间的区别和客户端时间,然后将其显示在我的视图中,这是一个PHP页面。

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

我对此感到困惑。

回答

2

date.js对于日期计算非常方便,可以解析/显示各种格式的日期。

0

从javascript发送(新日期())。getTime()到php脚本,并在php中使用time()函数。

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

这应该是准确的,直到客户端与服务器通信的时间。

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; 
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()来计算$匹配时间

相关问题