dpzr52746 2017-06-14 05:32
浏览 39
已采纳

DateTime :: diff - 如何获得周数?

I'm having trouble getting "weeks" in DateTime::diff function

Here's my code:

$date1 = new DateTime("2017-05-14");
$date2 = new DateTime("2017-06-14");
$interval = $date1->diff($date2);
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month');

It worked if I'm going to get the "month" count, but I want to get the weeks before turning it into a month:

We have 4 weeks in a month (4.34524 to be exact from Google Unit Converter), if the difference between start date and the date today exceeds 4 weeks, it should output "1 month" and so on..

  • 写回答

3条回答 默认 最新

  • dongyinting3179 2017-06-14 05:43
    关注

    Code (Demo):

    $date1 = new DateTime("2017-06-1");
    $date2 = new DateTime("2017-06-15");
    $interval = $date1->diff($date2);
    //var_export($interval);
    if($interval->m>0){  // check if >= 1 month
        echo "{$interval->m} month",($interval->m>1?'s':'');
    }else{
        $weeks=floor($interval->days/7);  // if not yet 1 month, calc weeks
        echo "$weeks week",$weeks!=1?'s':'';
    }
    // output: 2 weeks
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?