The problem is that you are sorting the human-readable representations of the dates, so obviously April comes first (it starts with A).
What you need to do is something like
foreach($images as $image) {
array_push($array2, filemtime($image));
}
sort($array2);
// and now, AFTER sorting get the formatted dates
foreach ($array2 as $ts)
{
echo date("F d Y H:i:s.", $ts);
}
Some tips:
You can get the last modified times for your files in just one line with
$array2 = array_map('filemtime', $images);
date
depends on the system timezone. Make sure you have set it properly withdate_default_timezone_set
before doing anything.