PHP计算两个日期相隔多少年,多少月,多少天

lys2019年11月18日 0条评论

计算两个日期相隔多少年,多少月,多少天

/*
    *function:计算两个日期相隔多少年,多少月,多少天
    *param string $date1[格式如:2011-11-5]
    *param string $date2[格式如:2012-12-01]
    *return array array('年','月','日');
*/
   public static function diffDate($date1,$date2)
   {
       if (strtotime($date1) > strtotime($date2)) {
           $tmp = $date2;
           $date2 = $date1;
           $date1 = $tmp;
       }
       list($Y1, $m1, $d1) = explode('-', $date1);
       list($Y2, $m2, $d2) = explode('-', $date2);
       $Y = $Y2 - $Y1;
       $m = $m2 - $m1;
       $d = $d2 - $d1;
       if ($d < 0) {
           $d += (int)date('t', strtotime("-1 month $date2"));
           $m--;
       }
       if ($m < 0) {
           $m += 12;
           $Y--;
       }
       return array('year' => $Y, 'month' => $m, 'day' => $d);
   }