Obtenez la différence entre un temps côté serveur et le temps côté client et affichez-le

Duplication possible:
Comment synchroniser un compte à rebours javascript avec le temps du serveur

Comment puis-je calculer la différence entre le temps du côté du serveur et le temps du client et ensuite l'afficher dans ma vue, qui est une page PHP.

Permettez-moi de préciser cela. J'ai une base de temps pour un jeu de cricket particulier pour démarrer qui est stocké dans la base de données. Maintenant, je souhaite afficher la différence entre cette période et l'heure dans le navigateur client à mon avis, qui est une page PHP. Je peux comprendre que j'ai besoin d'écrire une fonction javascript pour cela, mais comment puis-je appeler cette fonction à partir de mon code PHP, et encore une fois, je dois afficher la différence dans mon point de vue.

Je suis confus à propos de cela.

Date.js est très pratique pour les calculs de dates et peut analyser / afficher les dates dans différents formats.

Écrivez votre date dans php à une entrée cachée sur votre page. Rangez-le dans un format comme: YYYY/MM/DD hh:mm:ss . Chargez cette date en passant la valeur du champ caché au constructeur Date:

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

Obtenez la date actuelle simplement en appelant le constructeur Date sans argument:

 var now = new Date(); 

Faites la différence en millisecondes en soustrayant les dates:

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

Vous pouvez ensuite analyser les millisecondes manuellement, ou convertir à une date et extraire les parties de la date pour obtenir la différence:

 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; 

Je ne sais pas si c'est la méthode correcte … mais vous pouvez le faire est

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

Et dans setSessionData, utilisez la valeur et définissez la session .. et lorsque vous affichez les détails, obtenez les temps de correspondance

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

Utilisez mktime () pour calculer le $ matchTime

Envoyer (nouvelle Date ()). GetTime () de javascript au script php, et utiliser la fonction time () dans php.

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

Cela devrait être précis jusqu'à l'heure où il faut que le client parle à votre serveur.