Я работаю с отметкой времени в массиве в качестве значения, например:PHP получить ближайшую отметку времени, но меньше, чем текущая временную метка
- 1455874500: 19/02/2016 09h35
- 1455879600: 19/02/2016 11h00
- 1455921300: 19/02/2016 22h35
И что я хотел бы сделать, это получить наиболее близкое метку времени из моего массива НО, если эта временная отметка выше текущего времени (ближайший> ток timestamp), получить более низкое значение.
Вот пример, чтобы проиллюстрировать мою точку зрения, это 19/02/2016 10h58, я не хочу получать 1455879600 (19/02/2016 11h00), но 1455874500 (19/02/2016 09h35) И затем, когда 19/02/2016 11h00, получить 1455879600.
я работал на этом коде:
function find_closest($id, $date_now){
global $cnx;
$sql = "select position_history from worksheets WHERE id = $id LIMIT 1";
$stmt = $cnx->prepare($sql);
try {
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_OBJ);
}
catch (PDOException $e) {
echo $e->getMessage();
}
$pos_lane = unserialize($result->position_history);
$i=0;
$array = array();
foreach ($pos_lane as $item) {
// $exp[2] : timestamp
$exp = explode("|", $pos_lane[$i]);
$array[$exp[1]] = $exp[2];
$i++;
}
$mostrecent = "0";
foreach($array as $timestampmove)
{
if ($timestampmove > $mostrecent && $timestampmove < $date_now) {
$mostrecent = $timestampmove;
}
}
$closeto = array_search($mostrecent,$array);
return $closeto;
}
, которые направлены, чтобы выбрать самую последнюю метку времени до сегодняшнего дня, но это не похоже на работу как я хочу ...
Возможно, у вас есть лучшее решение для меня?
спасибо!
вы имеете в виду что-то вроде [это] (http://sandbox.onlinephpfunctions.com/code/5b589787f5723bf20ffb6c28879763425ba75fa1) – roullie