PHP - 如何在没有周末的情况下获得几天,几周和几个月?

时间:2017-06-14 07:05:18

标签: php

我使用PHP的 DateTime :: diff 功能,花费数周时间。

这是我的代码:

$start = new DateTime('2017-06-05');
$end = new DateTime('2017-06-07');
$end->modify('+1 day');

$interval = $end->diff($start);

// total days
$days = $interval->days;

// create an iterateable period of date (P1D equates to 1 day)
$period = new DatePeriod($start, new DateInterval('P1D'), $end);

// best stored as array, so you can add more than one
$holidays = array('2017-09-07');

foreach($period as $dt) {
    $curr = $dt->format('D');

    // substract if Saturday or Sunday
    if ($curr == 'Sat' || $curr == 'Sun') {
        $days--;
    }

    // (optional) for the updated question
    elseif (in_array($dt->format('Y-m-d'), $holidays)) {
        $days--;
    }
}

if($days <= 7) {
    echo $days." day".($days > 1 ? 's' : '');   
}

// I'm stucked here

我可以获得工作日的数量,但我无法获得数月和数周的时间 有人帮我这个吗?

1 个答案:

答案 0 :(得分:0)

试试此代码

$interval = $date1->diff($date2);
echo $interval->m // month
$week = floor($date1->diff($date2)->days/7);
echo $week; //week