Php 对0上带有月份或天数的日期进行排序
我必须在PHP上对一些日期进行排序,其中一些日期的月份或日期可以为“0”,例如: 1951-11-00 1951-12-14 问题是,此日期不能与具有所有年、日和月值的其他日期排序 首先,我尝试使用array\u multisort:Php 对0上带有月份或天数的日期进行排序,php,sorting,date,datetime,Php,Sorting,Date,Datetime,我必须在PHP上对一些日期进行排序,其中一些日期的月份或日期可以为“0”,例如: 1951-11-00 1951-12-14 问题是,此日期不能与具有所有年、日和月值的其他日期排序 首先,我尝试使用array\u multisort: foreach ($Objects as $key => $part) { $sort[$key] = strtotime($part['Object']['date']); } array_multisort($so
foreach ($Objects as $key => $part) {
$sort[$key] = strtotime($part['Object']['date']);
}
array_multisort($sort, SORT_DESC, $Objects );
它可以对其进行排序,但它首先对月份或日期上有00的值进行排序,然后对正常日期进行排序,例如:
1937-05-00
1937-04-00
1935-11-00
1951-12-16
1951-12-14
正如您所看到的,顺序是不正确的,因为1951年的日期应该排在第一位,但是排序算法将日期分为两组,一组是00,另一组是完整的数字
然后我尝试了uasort,但是没有得到好的结果
如何正确地对这些日期进行排序?对于我放置的列表,我需要它显示在此订单上(无论当月是00):
1951-12-16
1951-12-14
1937-05-00
1937-04-00
1935-11-00只需将它们按字符串排序即可。当作为字符串进行比较时,它们已经具有可比较的格式
$dates = [
'1937-05-00',
'1937-04-00',
'1935-11-00',
'1951-12-16',
'1951-12-14'
];
usort($dates, function($a, $b) {
return $a < $b;
});
var_export($dates);
$dates=[
'1937-05-00',
'1937-04-00',
'1935-11-00',
'1951-12-16',
'1951-12-14'
];
usort($dates,function($a,$b){
返回$a<$b;
});
var_出口(日期);