Php 在连续循环的开始日期和结束日期之间获取$date

Php 在连续循环的开始日期和结束日期之间获取$date,php,loops,while-loop,Php,Loops,While Loop,试图找出实现以下场景的方法:- 用户创建初始时间段(如2013年1月1日至2013年7月1日)和续订时间段(如每1个月) 我正在开发一个函数,该函数将:- 检测函数中传递的日期(可以是任何日期)是否落在与用户需求匹配的时间段内 例如:- 职能部门可接受以下日期:2019年2月21日。基于此,我需要检测用户处于哪个续订期 我想实现这一目标的方法是:- 向用户的初始开始日期添加一天,以获取最新的续订日期 将续订期(1个月)添加到此中以获取最新的结束日期 继续这样做,直到我根据用户续订期限类型(例如1

试图找出实现以下场景的方法:-

用户创建初始时间段(如2013年1月1日至2013年7月1日)和续订时间段(如每1个月)

我正在开发一个函数,该函数将:-

  • 检测函数中传递的日期(可以是任何日期)是否落在与用户需求匹配的时间段内
  • 例如:-

    职能部门可接受以下日期:2019年2月21日。基于此,我需要检测用户处于哪个续订期

    我想实现这一目标的方法是:-

  • 向用户的初始开始日期添加一天,以获取最新的续订日期
  • 将续订期(1个月)添加到此中以获取最新的结束日期
  • 继续这样做,直到我根据用户续订期限类型(例如1个月)检测到日期介于哪个开始日期和结束日期之间
  • 有点让人困惑,但这是我所追求但不起作用的东西的总结:-

    $tmpStartDate=$endDate;   
    do{
    $tmpStartDate=date("Ymd",strtotime($tmpStartDate .'+1 Day'));
    $tmpEndDate=date("Ymd",strtotime($tmpStartDate .'+'.$timingUnitVal .' '.$timingUnit));
    } while($date<$tmpStartDate&&$date>$tmpEndDate);
    
    $tmpstardate=$endDate;
    做{
    $tmpStartDate=日期(“Ymd”,标准时间($tmpStartDate.+1天”);
    $tmpEndDate=date(“Ymd”,strotime($tmpStartDate.'+.$timingUnitVal.'.$timingUnit));
    }而($date$tmpEndDate);
    

    $endDate是用户最初输入的结束日期。

    根据我从您的问题中收集到的信息,大致按照以下几点比较正确

    function findPeriod($lowerBound, $upperBound, $repeatEvery, $date)
    {
      $lowerBound = strtotime($lowerBound);
      $upperBound = strtotime($upperBound);
      $repeatEvery = strtotime('+' . $repeatEvery) - time();
      $date = strtotime($date);
    
      while ($date >= $lowerBound) {
        if ($date <= $upperBound) {
          return array($lowerBound, $upperBound);
        } else {
          $lowerBound += $repeatEvery;
          $upperBound += $repeatEvery;
        }
      }
    
      return false;
    }
    
    函数findPeriod($lowerBound,$upperBound,$repeatEvery,$date)
    {
    $lowerBound=strotime($lowerBound);
    $upperBound=strottime($upperBound);
    $repeatEvery=strtotime('+.$repeatEvery)-time();
    $date=strottime($date);
    而($date>=$lowerBound){
    
    如果($date)这看起来像PHP;如果是的话,你可能想给它贴上标签。我认为所写的场景有点混乱,需求也不清楚。我想也许你可以让逻辑更清晰一些(例如,你可以用一两句话来解释)解决方案会自动出现。听起来这个方法需要使用三个输入值,而不仅仅是一个,也许你需要澄清一下(听起来你在使用strotime()比较方面走的方向是正确的,只是这个问题需要重新编写)。