Распространено заблуждение, что функции сортировки должны возвращать -1,0,1.Вы можете сделать
function compareDates($date1, $date2)
{
return strtotime("{$date1->year}-{$date1->month}-{$date1->day}")
- strtotime("{$date2->year}-{$date2->month}-{$date2->day}");
}
Обратите внимание, что если целочисленный лимит является проблемой, вы можете использовать DateTime
, который не имеет этого ограничения, например,
function compareDates($date1, $date2)
{
return new DateTime("{$date1->year}-{$date1->month}-{$date1->day}")
< new DateTime("{$date2->year}-{$date2->month}-{$date2->day}");
}
Что касается уменьшения сложности NPathв общем: вам нужно уменьшить количество возможных путей выполнения.Для начала взгляните на главу о Упрощении условных выражений из книги Фаулера по рефакторингу.
Интересно, каковы преимущества этой вещи RaiseDateTime?Может ли он сделать что-то, чего не может сделать нативный API DateTime?Если нет, зачем мне его использовать?