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

时间:2017-06-14 05:32:16

标签: php date date-difference

我无法在 DateTime :: diff 功能

中获得“周”

这是我的代码:

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

如果我要获得“月份”计数,它会有效,但我希望在将它变成一个月之前的几个星期:

我们一个月有4个星期(4.34524准确地来自 Google Unit Converter ),如果开始日期和今天的日期之间的差异超过4周,则应输出“1个月”,等...... ..

3 个答案:

答案 0 :(得分:1)

计算天数,然后除以7为一周。 试试这段代码:

@Version
int version;

答案 1 :(得分:1)

代码(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 :(得分:-1)

你可以这样做几个星期,然后成为条件:

$daysInAweek = 7;
$weeks = ($interval->days)/$daysInAweek;
if($weeks >= 4) {
  echo 'is a month';
}

因为一周有7天。