我有以下数组
$dates = array( '2015-02-13', '2015-04-21', '2015-08-18', '2015-11-26', '2015-09-15', '2015-01-07', '2015-02-11', '2015-07-14', '2015-03-02', );
我想从最久前到最近的日期对这个数组进行排序.
foreach ($dates as $date) { $date = new DateTime($date); // The logic I need }
你能救我吗?
我想指出日期格式可能会有所不同.为了详细说明,我在我的数据库日期格式为YYYY-MM-DD
,YYYY/MM/DD
,DD-MM-YYYY
和DD/MM/YYYY
.
但正如下面建议的那样,我可以重新格式化日期并构建一个新数组.所以这可能不是问题.
您拥有的日期是缩短的ISO8601格式,即YYYY-MM-DD
.
这些具有很好的功能,即词法排序顺序与日期顺序相同.因此,只需使用默认排序函数对数组进行排序.它会工作的.
在代码中处理日期字符串时,将ISO8601作为规范的内部日期格式始终是个好主意.尽快将用户提供的内容转换为该内容,如果用户要求输出位于他们自己的语言环境中,则将其推迟到尽可能晚.当然,使用"适当的"日期对象更好!