計算兩個日期相差 年 月 日
相差年月日計算
/** +---------------------------------------------------------- * 功能:計算兩個日期相差 年 月 日 +---------------------------------------------------------- * @param date $date1 起始日期 * @param date $date2 截止日期日期 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ function DiffDate($date1, $date2) { if (strtotime($date1) > strtotime($date2)) { $ymd = $date2; $date2 = $date1; $date1 = $ymd; } list($y1, $m1, $d1) = explode('-', $date1); list($y2, $m2, $d2) = explode('-', $date2); $y = $m = $d = $_m = 0; $math = ($y2 - $y1) * 12 + $m2 - $m1; //相差總月數 $y = round($math / 12); //相差年數 $m = intval($math % 12); //相差月數 $mm = $math; //相差總月數 $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400; if ($d < 0) { $m -= 1; $d += date('j', mktime(0, 0, 0, $m2, 0, $y2)); } $m < 0 && $y -= 1; return array($y, $m, $d,$mm); }
相差天 小時 秒 計算
$one = strtotime('2011-12-08 07:02:40');//開始時間 時間戳 $tow = strtotime('2011-12-25 00:00:00');//結束時間 時間戳 $cle = $tow - $one; //得出時間戳差值 /* 這個只是提示 echo floor($cle/60); //得出一共多少分鍾 echo floor($cle/3600); //得出一共多少小時 echo floor($cle/3600/24); //得出一共多少天 */ /*Rming()函數,即舍去法取整*/ $d = floor($cle/3600/24); $h = floor(($cle%(3600*24))/3600); //%取余 $m = floor(($cle%(3600*24))%3600/60); $s = floor(($cle%(3600*24))%60); echo "兩個時間相差 $d 天 $h 小時 $m 分 $s 秒"