计算一天中的外观

时间:2014-03-19 10:46:27

标签: php

我想计算两个日期之间出现的一天的时间。

例如: 我想计算“星期六”从2013年9月5日到今天(2014年3月19日)出现的次数。正确答案是28。

知道我该怎么做吗?

提前致谢!

3 个答案:

答案 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;
}