如果日期是“Mysql”格式(或),那么您可以立即对数组进行排序,无需特殊操作:Y-m-d
Y-m-d H:i:s
$arr = ["2019-11-11", "2019-10-10","2019-11-11", "2019-09-08","2019-05-11"];
sort($arr);
如果以任何方式对日期进行了本地化或格式化(您应该避免,仅在输出之前格式化日期),则必须使用自定义排序函数,例如usort()
),该函数将在比较之前将日期转换为可排序格式。
将日期转换为可排序格式的最简单方法是使用 strtotime()
函数将其转换为 uninx 时间戳:
$arr = ['11/01/2012', '03/16/2022', '12/26/2021', '01/01/2014', '09/02/2013'];
usort($arr, function ($a, $b) {
return strtotime($a) - strtotime($b);
});
print_r($arr);
在演示中检查结果
但是,可能存在陷阱,因为在不同的国家/地区,相同的日期格式可能意味着不同的日期。您的示例格式正是这种情况,如果日期为 .,则上述函数将返回错误的结果。因此,最好显式定义日期格式,如本答案中所述['03-16-2022', '12-26-2021', '06-06-2022']