Calculate business days

后端 未结 30 2299
猫巷女王i
猫巷女王i 2020-11-22 05:16

I need a method for adding \"business days\" in PHP. For example, Friday 12/5 + 3 business days = Wednesday 12/10.

At a minimum I need the code to understand weekend

30条回答
  •  忘掉有多难
    2020-11-22 06:08

    A function to add or subtract business days from a given date, this doesn't account for holidays.

    function dateFromBusinessDays($days, $dateTime=null) {
      $dateTime = is_null($dateTime) ? time() : $dateTime;
      $_day = 0;
      $_direction = $days == 0 ? 0 : intval($days/abs($days));
      $_day_value = (60 * 60 * 24);
    
      while($_day !== $days) {
        $dateTime += $_direction * $_day_value;
    
        $_day_w = date("w", $dateTime);
        if ($_day_w > 0 && $_day_w < 6) {
          $_day += $_direction * 1; 
        }
      }
    
      return $dateTime;
    }
    

    use like so...

    echo date("m/d/Y", dateFromBusinessDays(-7));
    echo date("m/d/Y", dateFromBusinessDays(3, time() + 3*60*60*24));
    

提交回复
热议问题