Эффективное сравнение дат в PHP - PullRequest
0 голосов
/ 07 октября 2011

Я пытаюсь написать функцию, которая будет возвращать количество дней между двумя датами как можно быстрее.Эта функция вызывается тысячами миллионами раз в моем коде, и ее максимальная оптимизация была бы действительно полезной.Даты представляют собой строки в формате yyyy-mm-dd.

Вот лучшее из того, что у меня есть:

protected function daysBetween($date1, $date2)
{
  list($year1,$month1,$day1) = explode('-',$date1);
  list($year2,$month2,$day2) = explode('-',$date2);
  return (int)abs((mktime(0,0,0,$month1,$day1,$year1) -
                   mktime(0,0,0,$month2,$day2,$year2)) / 86400);
}

Как я могу выполнить это в кратчайшие сроки?

1 Ответ

1 голос
/ 07 октября 2011

Изменение mktime() на gmmktime() сокращает время, необходимое для меня более чем на 50% .Это единственное величайшее улучшение, которое я вижу.

* Я выглядел не очень усердно.SO не кажется подходящим местом для настройки вашей функции, для вашего сценария, для вашего оборудования, для ваших индивидуальных потребностей, тем более что она вызывается только тысячи раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...