我想计算两个日期之间出现的一天的时间。
例如: 我想计算“星期六”从2013年9月5日到今天(2014年3月19日)出现的次数。正确答案是28。
知道我该怎么做吗?
提前致谢!
答案 0 :(得分:0)
试试这个:
$old_date = "2014-01-22";
$new_date = "2014-02-20";
$diff = strtotime($new_date) - strtotime($old_date);
echo floor($diff/(60*60*24));
答案 1 :(得分:0)
我很确定有更好更有效的方法。将其称为GetDayCount(strtotime('2014-10-01'),strtotime('2014-12-06'),"Saturday")
<强> UNTESTED 强>
function GetDayCount ($firstdate, $lastdate, $daytype) {
$ret = 0;
$date = $firstdate;
while (strtotime($date) <= strtotime($lastdate)) {
if (date('l', $date)=$daytype) {$ret++;}
$date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}
return $ret;
}
答案 2 :(得分:0)
周日参数应为数字(1 =星期一... 7 =星期日)。从计数中排除的边界日期,包括,将<= and >=
放在三元运算符中。
function weekDayBetweenDates ($dateStart, $dateEnd, $day) {
$tsStart = strtotime($dateStart);
$tsEnd = strtotime($dateEnd);
$diff = floor(strtotime("last monday",$tsEnd) - strtotime("sunday",$tsStart)/(60*60*24*7));
$diff += date('N', $tsStart)<$day?1:0;
$diff += date('N', $tsEnd)>$day?1:0;
return $diff;
}