Chronometre

Contenu du snippet

Bonjour

J'ai du faire un Quizz, j'ai récupéré des codes sur la toile pour faire mon chronomètre, puis un jour j'ai était confronté un un gros problème :
j'ai lancé le chrono puis j'ai changé l'heure du PC et big j'ai pu tricher.
Donc j'ai du changer mon code Javascript par du code PHP

Je pose mon source pour vous en faire profiter et avoir un retour d'erreur et d'amélioration

alert('Beau Temps belle Mer');
Jorgio

chrono.php

<?php 
   session_start();
   
   setlocale(LC_TIME, 'fra_fra');
   date_default_timezone_set('Europe/Paris');
   
   if (isset($_SESSION['WBD']['DEPART'])){   
   $depart = date($_SESSION['WBD']['DEPART']);   
   }else{
   $depart = date('Y-m-d H:i:s', time());
   $_SESSION['WBD']['DEPART'] = $depart;   
   } 
         
   ?>
<html>

<style>.stylechrono {border-width: 0;background-color: #005A7B;color: #F2f2f2;font-size: 130%;width: 120px;text-align: center;}</style>
<body onload="clock()">
<input id="depart" name="depart" readonly="true" type="text" value="<?php echo $depart?>">
<div id="misealheure"><input id="heureserveur" name="heureserveur" readonly="true" type="text" value="<?php echo $depart?>"></div>
<script>          
                           
function clock() {
    _misealheureserveur(); // heure du serveur
    setTimeout(clock, 1000)
}

function _misealheureserveur() {
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("misealheure").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", 'misealheure?depart=<?php echo $depart?>', true);
    xmlhttp.send();

}
</script>
</body>

</html>

misealheure.php
<style>#chrono{border-width:0;background-color:#005A7B;color: #F2f2f2;font-size:130%;width:120px;text-align:center}</style>
<?php
 setlocale(LC_TIME, 'fra_fra');
 date_default_timezone_set('Europe/Paris');
 
  function _double($i){  
  if ($i <10)$i = '0'.$i;
  return $i;  
  }
 
  function diff($start,$end = false) {
    if(!$end) { $end = time(); }
    if(!is_numeric($start) || !is_numeric($end)) { return false; }
    $start  = date('Y-m-d H:i:s',$start);
    $end    = date('Y-m-d H:i:s',$end);
    $d_start    = new DateTime($start);
    $d_end      = new DateTime($end);
    $diff = $d_start->diff($d_end);

 /*   $year     = $diff->format('%y');
    $month    = $diff->format('%m');
    $day      = $diff->format('%d');*/
    $hour     = $diff->format('%h');
    $min      = $diff->format('%i');
    $sec      = $diff->format('%s');
    return '<input type="text" id="chrono" name="chrono" readonly="true" value="'._double($hour).':'._double($min).':'._double($sec).'">';
}

 $depart = $_REQUEST['depart'];
 $maintenant = date('Y-m-d H:i:s', time());
 echo '<input id="heureserveur" name="heureserveur" readonly="true" type="text" value="'.$maintenant.'"><br>';
 echo Diff(strtotime($depart),strtotime($maintenant));

?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.