2017-08-31 6 views
-2

Je veux comptabiliser le temps passé sur ce site. J'ai une liste d'horodatages pour chaque utilisateur, le plus petit intervalle entre chaque horodatage est d'au moins 60 secondes.Comment compter le temps à partir de la liste des horodatages en PHP?

Edit: Voici mon code, le groupe ne peut pas les par tranche de 100 secondes

<?php 
$numbers = array(1503541542,1503541602,1503541662,1503541722,1503541782,1503541842,1503541902,1503541962,1503542022,1503542082,1503542142,1503542202,1503542262,1503542322,1503542382,1503542442,1503542502,1503542562,1503542622,1503542682,1503542742,1503542798,1503542799,1503542859,1503542877,1503542878,1503542938,1503542961,1503542962,1503543022,1503543079,1503543080,1503543140,1503543200,1503543221,1503543221,1503543281,1503543341,1503543401,1503543461,1503543521,1503543581,1503543641,1503543701,1503543761,1503543821,1503543881,1503543941,1503544001,1503544061,1503544121,1503544181,1503544241,1503544301,1503544361,1503544421,1503544481,1503544541,1503544601,1503544661,1503544721,1503544781,1503544841,1503544901,1503545055,1503545056,1503545060,1503545061,1503545120,1503545173,1503545174,1503545181,1503545233,1503545240,1503545293,1503545301,1503545304,1503545304,1503545364,1503545424,1503545484,1503545544,1503545604,1503545664,1503545724,1503545784,1503545844,1503545904,1503545964,1503546024,1503546084,1503546144,1503546204,1503546264,1503546324,1503546358,1503546359,1503546419,1503546479,1503546539,1503546599,1503546659,1503546719,1503546779,1503546839,1503546899,1503546959,1503547019,1503547079,1503547139,1503547167,1503547167,1503547199,1503547218,1503547218,1503547254,1503547254,1503547259,1503547281,1503547282,1503547319,1503547340,1503547341,1503547379,1503547401,1503547439,1503547461,1503547499,1503547521,1503547559,1503547581,1503547619,1503547641,1503547679,1503547701,1503547739,1503547761,1503547799,1503547821,1503547859,1503547881,1503547919,1503547941,1503547979,1503548001,1503548039,1503548061,1503548099,1503548121,1503548159,1503548181,1503548219,1503548240); 

// $numbers = array(10, 30, 230, 240, 250, 260); 
$result = array(); 

while (count($numbers) > 0) { 
    $begin = reset($numbers); 
    $end = array_shift($numbers); 

    while (in_array($end + 100, $numbers)){ 
     $end = array_shift($numbers); 
    } 

    $beginAndEnd = array_unique(array($begin, $end)); 
    $result[] = implode('-', $beginAndEnd); 
} 

print_r($result); 
?> 

Merci à l'avance

+3

Yo Vous devez ajouter ce que vous avez essayé jusqu'à présent, et quel problème vous affrontez. –

+3

Question n'est pas claire. [S'il vous plaît lire comment poser une bonne question] (https://stackoverflow.com/help/how-to-ask) –

+0

Désolé pour cela, les gars. J'ai ajouté le code – rika

Répondre

0

La meilleure façon d'obtenir l'horodatage de l'utilisateur sur un site Web particulier est pour utiliser la fonction « charge » et « onunload », voici le code:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Collect time</title> 
     <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
     <script type="text/javascript"> 
     $(function() 
     { 
      var start = null; 
      $(window).load(function(event) { 
       start = event.timeStamp; 
      }); 
      $(window).onunload(function(event) { 
       var time = event.timeStamp - start; 
       $.post('/collect-user-time/ajax-backend.php', {time: time}); 
      }) 
     }); 
     </script> 
    </head> 
    <body> 

    </body> 
</html> 
And backend script: 

<?php 
$time = intval($_POST['time']); 
if (!file_exists('data.txt')) { 
    file_put_contents('data.txt', $time . "\n"); 
} else { 
    file_put_contents('data.txt', $time . "\n", FILE_APPEND); 
} 
0

Hum, votre question ne sait pas, mais si je comprends bien, voici mon idée:

  • Ajouter 2 variables de session:
    • 1 var pour vous inscrire ancienne page sur reload et mise à jour sur reload
    • 1 var timestamp enregistrer et mettre à jour le reload

Regardez ceci:

if(isset($_SESSION['page']) && isset($_SESSION['timestamp'])){ 
    //REGISTER WHERE YOU WANT : BDD, LOGFILE... 
    //$userStay=$db->prepare(); 
    //fopen('userStay', 'a+'); 

    //WITH THESE DATA 
    $time = time() - $_SESSION['timestamp']; 
    $page = $_SESSION['page']; 
} 
$_SESSION['page']=$_SERVER['REQUEST_URI']; 
$_SESSION['timestamp']=time(); 
+0

Non, je veux juste calculer le temps passé sur le site pour chaque utilisateur, j'ai déjà tous les horodatages, mais je ne sais pas comment calculer correctement – rika

+0

Oui, ce que fait mon code. Que voulez-vous calculer? – Azee

+0

J'ai tout l'histoire de l'horodatage, je veux créer un graphique comme celui-ci [graphique] (http://imgur.com/WULIBce) – rika