PHP計算兩個日期相差的年數和剩下的天數,小時數
阿新 • • 發佈:2019-01-06
public function actionDemo3(){ //功能:計算兩個時間戳之間相差的日時分秒 //$begin 開始時間戳 //$end 結束時間戳 //先計算相差的年份數,再用開始時間加上年份數得到第二開始時間, //再用第二開始時間與結束時間計算時間差 $begin = "2012-07-15 00:00:00" ; $end = date("Y-m-d H:i:s") ; $aa = $this->diffDate($begin,$end) ; $year = intval($aa['y']) ;//相差年份 if($year>0){ $begin2 = date("Y-m-d H:i:s",strtotime("+{$year} year",strtotime($begin))) ; }else{ $begin2 = $begin ; } var_dump($begin2); var_dump("------------") ; $begin_time = strtotime($begin2) ; $end_time = strtotime($end) ; if($begin_time < $end_time){ $starttime = $begin_time; $endtime = $end_time; }else{ $starttime = $end_time; $endtime = $begin_time; } //計算天數 $timediff = $endtime-$starttime; $days = intval($timediff/86400); //計算小時數 $remain = $timediff%86400; $hours = intval($remain/3600); //計算分鐘數 $remain = $remain%3600; $mins = intval($remain/60); //計算秒數 $secs = $remain%60; $res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs); var_dump($res);exit; } public function diffDate($date1,$date2) { $datetime1 = new \DateTime($date1); $datetime2 = new \DateTime($date2); $interval = $datetime1->diff($datetime2); $time['y'] = $interval->format('%Y'); $time['m'] = $interval->format('%m'); $time['d'] = $interval->format('%d'); $time['h'] = $interval->format('%H'); $time['i'] = $interval->format('%i'); $time['s'] = $interval->format('%s'); $time['a'] = $interval->format('%a'); // 兩個時間相差總天數 return $time; }
參考:https://segmentfault.com/a/1190000006795735