我无法在 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个月”,等...... ..
答案 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天。