2016-03-30 4 views
0

Ich habe ein Array mit diesen Werten und habe die jüngsten diesefindet den aktuellsten Wert zwischen einigem Datum in PHP

Array ( 
    [0] => stdClass Object ( 
     [createdDate] => 2016/03/30 22:27:26:000 
     [createdDateUTC] => 2016-03-30T21:27:26 
     [id]=>1 
    ), 
    [1] => stdClass Object ( 
     [createdDate] => 2016/03/30 22:27:26:000 
     [createdDateUTC] => 2016-03-30T21:27:26 
     [id]=>2 
    ) 
) 

ich nur eine ID zwischen jetzt und jetzt nehmen müssen finden - 1 Stunde.

EDIT: DIES IST EINE LÖSUNG DANK @ evan-taylor

$dates_arr=array( 
    array( 
     'createdDate' => '2016/03/30 22:27:26:000', 
     'createdDateUTC' => '2016-03-30T20:27:26', 
     'id'=>1 
    ), 
    array( 
     'createdDate' => '2016/03/30 22:27:26:000', 
     'createdDateUTC' => '2016-03-30T21:27:26', 
     'id'=>2 
    ) 
); 
$most_recent_time = 0; 
$most_recent_id = NULL; 
foreach($dates_arr as $date_obj){ 
    $parsed_time = strtotime($date_obj['createdDateUTC']); 
    if($parsed_time > $most_recent_time && ($parsed_time >= (time() - 3600))){ 
     $most_recent_time = $parsed_time; 
     $most_recent_id = $date_obj['id']; 
    } 
} 
echo $most_recent_id; 
+1

Mögliche Duplikate: http://StackOverflow.com/Questions/11012891/How-to-Get-Most-Re-cent-Date-From-Anarray-of-Dates – Jon

Antwort

1

So etwas wie dies wahrscheinlich für Sie arbeiten würde. Schauen Sie in die Funktion strtotime.

$most_recent_time = 0; 
$most_recent_id = NULL; 
foreach($dates_arr as $date_obj){ 
    $parsed_time = strtotime($date_obj->createdDateUTC); 
    if($parsed_time > $most_recent_time && ($parsed_time >= (time() - 3600)){ 
     $most_recent_time = $parsed_time 
     $most_recent_id = $date_obj->id; 
    } 
} 

Haben Sie diesen Code nicht getestet, aber $most_recent_id sollte die ID des letzten Zeitstempel enthalten, die nicht vor mehr als 1 Stunde ist oder NULL wenn keine vorhanden sind.

+0

Ja, es ist richtig, jetzt poste ich Ihre Lösung richtig Danke – colapiombo

Verwandte Themen