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