Php 随着时间的推移计算一天的外观

Php 随着时间的推移计算一天的外观,php,Php,我想计算两个日期之间每天出现的次数 例如: 我想计算一下从2013年9月5日到今天(2014年3月19日)“周六”出现的时间。正确答案是28 你知道我怎么做吗 提前谢谢 试试这个: $old_date = "2014-01-22"; $new_date = "2014-02-20"; $diff = strtotime($new_date) - strtotime($old_date); echo floor($diff/(60*60*24)); 我确信有更好、更有效的方法。将其命名为Ge

我想计算两个日期之间每天出现的次数

例如: 我想计算一下从2013年9月5日到今天(2014年3月19日)“周六”出现的时间。正确答案是28

你知道我怎么做吗

提前谢谢

试试这个:

$old_date = "2014-01-22";
$new_date = "2014-02-20";

$diff = strtotime($new_date) - strtotime($old_date);

echo floor($diff/(60*60*24));

我确信有更好、更有效的方法。将其命名为
GetDayCount(strotime('2014-10-01')、strotime('2014-12-06')、“星期六”)

未经测试

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;
}
函数GetDayCount($firstdate、$lastdate、$daytype){ $ret=0; $date=$firstdate;
while(strotime($date)Week-day参数应该是数字(1=星期一…7=星期日)。边界日期不包括在计数中,例如,将
=
放在三元运算符中

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;
}
函数weekDayBetweenDates($dateStart、$dateEnd、$day){
$tsStart=strottime($dateStart);
$tsEnd=strottime($dateEnd);
$diff=楼层(strotime(“上周一”)、$tsEnd)-strotime(“周日”、$tsStart)/(60*60*24*7));
$diff+=日期('N',$tsStart)$day?1:0;
返回$diff;
}

我认为,如果两天之间的天数小于7(如4),有些人永远无法确定这些日期之间是否有星期一,这是一个纯数学函数。