เขียนฟังก์ชันเปรียบเทียบเวลาด้วย PHP

ไม่ได้เข้ามาอัพเดทนานแล้วก็เลยหาเรื่องมาลงไว้ซะหน่อย เอาที่เป็นสาระๆ หน่อยก็แล้วกันนานๆ ที ฮ่าๆ เกี่ยวกับการเขียนฟังก์ชันคำนวณระยะเวลาระหว่างวันสองวันก็แล้วกัน เห็นใช้บ่อย เขียนด้วย PHP นะครับ ฟังก์ชันนี้จะรับตัวแปรที่เป็นเวลาในหน่วย วินาที (Unix timestamp)สองตัวด้วยกัน และจะคืนค่าที่คำนวณได้กลับมาในรูปแบบของอาร์เลย์ (array)

function remainTime($fromTime=0, $toTime = 0) {
		$returnTime = array('day'=>0,'hour'=>0,'minute'=>0,'second'=>0);
	    $seconds = floor($toTime - $fromTime);
	    
	    if($seconds < 0){
	    	return $returnTime;
	    }
	    
	    $remainDays = floor($seconds / 86400);
	    $remainHours = floor(($seconds % 86400)/3600);
	    $remainMinutes = floor(($seconds % 3600)/60);
	    $remainSeconds = $seconds % 60;
	    
	    if($remainDays > 0){
	    	$returnTime['day'] = $remainDays;
	    }
	    
	    if($remainHours > 0){
	    	$returnTime['hour'] = $remainHours;
	    }
	    
	    if($remainMinutes > 0){
	    	$returnTime['minute'] = $remainMinutes;
	    }
	    
	    if($remainSeconds > 0){
	    	$returnTime['second'] = $remainSeconds;
	    }
	    
	    return $returnTime;
	}

ค่าที่คืนกลับมาให้จะอยู่ในรูปแบบนี้ครับ

$returnTime = array('day'=>0,'hour'=>0,'minute'=>0,'second'=>0);

ตัวอย่างการนำไปใช้ครับ

$now=time(); //เวลาปัจจุบันครับ
$target=strtotime('2010-07-06 21:20:00'); //เวลาในอนาคตครับ
$remainTime=remainTime($now,$target);
var_dump($remainTime);

หรือเพื่อนๆ อาจจะนำไปประยุกต์เพิ่มเติมก็ได้ครับ เช่น อาจจะรับตัวแปรเป็นวันที่ไปเลยก็ได้ หวังว่าจะมีประโยชน์กับเพื่อนๆ บ้างนะครับ ^^