我需要找出两个日期之间特定日期的计数。
我可以通过在两个日期之间使用循环来做到这一点,但是如果日期之间存在 10 年的差异(假设),循环将运行 10*365 次。
有更简单的方法吗?
提前致谢
最佳答案
函数 countDays($day, $start, $end) {
$start = strtotime($start);
$end = strtotime($end);
$datediff = $end - $start;
$days = floor($datediff / (60 * 60 * 24));
//get the day of the week for start and end dates (0-6)
$w = array( date('w', $start ), date('w', $end) );
//get partial week day count
if ($w[0] < $w[1])
{
$partialWeekCount = ($day >= $w[0] && $day <= $w[1]);
}else if ($w[0] == $w[1])
{
$partialWeekCount = $w[0] == $day;
}else
{
$partialWeekCount = ($day >= $w[0]
$day <= $w[1]);
}
//first count the number of complete weeks, then add 1 if $day falls in a partial week.
return intval($days / 7) + $partialWeekCount;
}
函数调用 - countDays( 5, "2017-04-14", "2017-04-21")
关于php - 在不使用任何循环的情况下查找两个日期php之间的特定日期的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43448587/