PHP计算2个日期相隔年数&天数

Sham在制作公司小程序的时候,想增加一个功能,就是计算员工入职多少年,多少天,经过几次试验,终于实现了。

此方法是先计算入职的年数,然后再计算天数,不是按实际天数后/365天来算的。

代码如下(采用面向对象的类方法来实现):

 getyeardays($begindate,$enddate);
echo $getyeardays;  //这样就能输出XX年+XX天了
//下面是得出2个日期差的天数的类,begindate 必须早于enddate
class YEARDays{
    public function getyeardays($begindate,$enddate){
      if(count(explode('/',$begindate))>1){
        $newbd = explode('/',$begindate);
      }else{
        $newbd = explode('-',$begindate);
      }
      $newby = $newbd[0];
      $newbm = $newbd[1];
      
      if(count(explode('/',$enddate))>1){
        $newed = explode('/',$enddate);
      }else{
        $newed = explode('-',$enddate);
      }
      $newey = $newed[0];
      $newem = $newed[1];
      
      if($newby<$newey){
        if($newbm<=$newem){
          $ys = ($newey - $newby) .'年';
          $ds = round((strtotime(date("Y-m-d"))-strtotime($newey.'-'.$newbd[1].'-'.$newbd[2]))/3600/24)+1 . '天';
        }else{
          if(($newey - $newby-1)>0){
            $ys = ($newey - $newby-1).'年';
          }else{
            $ys = ($newey - $newby-1);
          }
          $ds = round((strtotime(date("Y-m-d"))-strtotime(($newey-1).'-'.$newbd[1].'-'.$newbd[2]))/3600/24)+1 . '天';
        }
      }else{
        $ys = "";
        $ds = round((strtotime(date("Y-m-d"))-strtotime($begindate))/3600/24)+1 . '天';  //得出2个日期相差的天数
      }
      
      $yds = $ys .'+'. $ds;
      return $yds;
    }
  }
?>

如果只要计算相差的天数,相对简单点,如下: 

 我是一个想做码农的行政文员

 

你可能感兴趣的:(学做微信小程序)