我正在尝试编写一个函数,该函数将尽快返回两个日期之间的天数。这个函数在我的代码中被称为数千次,并且将其优化到最大值将非常有用。日期是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);
}
如何在尽可能短的时间内执行此操作?
答案 0 :(得分:1)
将mktime()
更改为gmmktime()
会减少超过50%对我的时间。这是我能看到的最大改进*。
*我看起来不太努力。因此,对于您的脚本,硬件以及个人需求来说,这似乎不适合调整您的功能,特别是因为它只被称为数千次。