开发者

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

This question already has answers here: Closed 10 years ago.

Possible Duplicate:

How to sync a javascript countdown with server time

How can I get the to calculate the difference between the server side time and the client side time and then display it in my v开发者_C百科iew , which is a PHP page .

Let me make this a bit clear. I have a time data for a particular cricket match to start which is stored in the database . Now, I want to display the difference between this time and the time in the client browser in my view which is a PHP page. I can understand that I need to write a javascript function for this , but how can I call this function from my PHP code ,and again I have to display the difference in my view.

I am confused about this.


date.js is pretty handy for date calculations and can parse/display dates in various formats.


Write your date in php to a hidden input on your page. Store it in a format like: YYYY/MM/DD hh:mm:ss. Load that date by passing the value of the hidden field to the Date constructor:

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

Get the current date just by calling the Date constructor with no arguments:

var now = new Date();

Get the difference in milliseconds by subtracting the dates:

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

You can then parse the milliseconds manually, or convert to a date and extract the parts of the date to get the difference:

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;


i do not know if it is the correct methods.. but you can do is

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);

and in the setSessionData just use the value and set session .. and when showing the details get the match times

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

use mktime() to calculate the $matchTime


Send (new Date()).getTime() from javascript to the php script, and use the time() function in php.

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

This should be accurate down to the time it takes the client to talk to your server.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜