3/22/2555

การหาจำนวนวันที่เริ่มต้น ถึงวันที่สิ้นสุด

ในบางระบบเรามีความต้องการที่ต้องทราบจำนวนวันระหว่างวันเริ่มต้น และวันสิ้นสุด ว่ามีกี่วัน
เช่น วันที่ 1 มีนาคม ถึง 2 เมษายน มีจำนวนวันทั้งสิ้น 33 วัน ระบบที่ต้องการนับจำนวนวันได้แก่ ระบบจองห้องพัก ต้องการทราบว่าลูกค้าจองห้องพักทั้งหมดกี่วันโดยนับวันที่เริ่มจอง จนถึงวันที่สิ้นสุดการจอง
เราสามารถเขียนโปรแกรม นับจำนวนวันได้ดังนี้

<?php


$strDate1="2012-01-01";//วันที่เริ่มต้น
$strDate2="2012-02-1";//วันที่สิ้นสุด

echo DateDiff($strDate1,$strDate2);//เรียก function DateDiff เพื่อหาจำนวนวันระว่างวันเริ่มต้น และวันที่สิ้นสุด


//สร้า้ง function DateDiff โดยรับค่าวันที่เริ่มต้น $strDate1 และวันที่สิ้นสุด $strDate2 

function DateDiff($strDate1,$strDate2)
{
                  //คำนวนหาวันที่โดยแปลงวันที่เป็นวินาที นำวินาทีวันที่สิ้นสุด - วินาทีวันที่เริ่มต้น  
                  //แล้วหารด้วย 86400 ( 1 วันมี 86400 วินาที ) จะได้จำนวนวัน
return (strtotime($strDate2) - strtotime($strDate1))/  ( 60 * 60 * 24 );
}

?>
ผลที่ได้คือ 31