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条)

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗