簡體   English   中英

PHP - 如何在沒有周末的情況下獲得幾天,幾周和幾個月?

[英]PHP - How to get days, weeks and months without weekends?

使用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

我可以得到工作日的數量,但我無法得到數月和數周。
有人幫我這個嗎?

試試這個代碼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM