2016-08-18 4 views
1

Ich habe ein Array mit zahlreichen Zeitstempeln. Ich brauche alle Zeitstempel der letzten 30 Minuten findenfinden innerhalb Zeitstempel Bereich

aktuellen Code:

  //$history is a JSON decoded stream of arrays, of variable lengths 
      $hist = array(); 
      foreach($history as $newday){ 
        if($newday['Closed'] == $val){ 
          array_push($hist, $newday['Closed']); 
        } 
      } 
      var_dump($hist); 

Probe Array-Daten:

array(24) { 
    [0]=> 
    string(22) "2016-08-18T05:24:40.47" 
    [1]=> 
    string(23) "2016-08-14T11:43:25.917" 
    [2]=> 
    string(23) "2016-08-16T08:26:39.693" 
    [3]=> 
    string(23) "2016-08-18T04:51:45.553" 

Wie finde ich berechnen/die letzten 30 von Zeitstempel ($ hist) in PHP?

Antwort

0

Die DateTime Klasse ist ideal für diese Art von Sache.

$timestamps = [ 
    "2016-08-18T05:24:40.47", 
    "2016-08-14T11:43:25.917", 
    "2016-08-16T08:26:39.693", 
    "2016-08-18T04:51:45.553", 
    "2016-08-18T16:30:45.553", 
]; 

$timeLimit = new DateTime('now'); 
$timeLimit->sub(new DateInterval('PT30M')); 

$recentTimestamps = []; 
foreach ($timestamps as $timestamp) { 
    $timestampDate = new DateTime($timestamp); 
    if ($timestampDate > $timeLimit) { 
     $recentTimestamps[] = $timestamp; 
    } 
} 

var_dump($recentTimestamps); 

Ausgang:

array(1) { 
    [0] => 
    string(23) "2016-08-18T16:30:45.553" 
} 
0

Geben Sie einen Tipp hier:

strtotime("2016-08-18T05:24:40.47") >= strtotime('-30minutes')

haben einen Versuch.

Verwandte Themen