Get most recent date from an array of dates in "Y-m-d H:i:s" format
I have the array of dates in Y-m-d H:i:s
format like:
array(5) {
[0]=> string(19) "2012-06-11 08:30:49"
[1]=> string(19) "2012-06-07 08:03:54"
[2]=> string(19) "2012-05-26 23:04:04"
[3]=> string(19) "2012-05-27 08:30:00"
[4]=> string(19) "2012-06-08 08:30:55"
}
I would like to know the most recent date.
In other words, today is June 13th 2012, which datetime is closest to today's date?
From my sample array, I am expecting 2012-06-11 08:30:49
.
How can I do that?
Solution 1:
Use max()
, array_map()
, and strtotime()
.
$max = max(array_map('strtotime', $arr));
echo date('Y-m-j H:i:s', $max); // 2012-06-11 08:30:49
Solution 2:
Do a loop, convert the values to date, and store the most recent, in a var.
$mostRecent= 0;
foreach($dates as $date){
$curDate = strtotime($date);
if ($curDate > $mostRecent) {
$mostRecent = $curDate;
}
}
something like that... you get the idea If you want most recent BEFORE today :
$mostRecent= 0;
$now = time();
foreach($dates as $date){
$curDate = strtotime($date);
if ($curDate > $mostRecent && $curDate < $now) {
$mostRecent = $curDate;
}
}