无法使用PHP对日期进行排序

use*_*398 0 php sorting

我有一个PHP数组,如下所示:

$dates = array();
$dates['01-07-2013'] = 'dummy data';
$dates['01-21-2013'] = 'dummy data';
$dates['01-28-2013'] = 'dummy data';
$dates['01-20-2012'] = 'dummy data';
Run Code Online (Sandbox Code Playgroud)

使用ksort($ dates)时,它没有正确排序.有没有办法对这样的键进行排序?

我希望这种回归:

'01-30-2012',
'01-07-2013',
'01-21-2013',
'01-28-2013',
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 9

就PHP而言,这些不是日期.它们是字符串,所以它正在应用标准的字符串排序规则.

您需要定义一个自定义排序函数以供使用usort(),或将这些日期转换为可作为字符串排序的格式,例如

yyyy-mm-dd
Run Code Online (Sandbox Code Playgroud)

  • 很多很多赞成票. (3认同)