วันจันทร์ที่ 31 มีนาคม พ.ศ. 2557

หา timeleft โดยใช้ฟังก์ชั่น strtotime() ง่ายๆๆ ง้าย ง่าย

ตัวอย่างเลยครับผม ง่ายจริงอะไรจริง

$date1 = "28-03-2014"; //วันซี้อสินค้า
$date2 = "31-03-2014"; //วันครบกำหนดชำระ
$timestamp_date1 = strtotime($date1); //ค่าที่ได้จะเป็น timestamp เป็นเลขหลายหลัก
$timestamp_date2 = strtotime($date2); //ค่าที่ได้จะเป็น timestamp เป็นเลขหลายหลัก
$timeleft = ceil(($timestamp_date2 - $timestamp_date1)/(60*60*24)); 
echo "".$timeleft;
ผลลัพธ์ที่ได้จะได้เท่ากับ
 3
ซื่งก็ตรงกับความเป็นจริง คือ วันครบดิวคือ 31/3/14 - 28/3/14 = 3

ส่วนตัว (60*60*24) ใส่เพื่อให้เราดูคำตอบเป็นจำนวนวัน ไม่ใช่ timestamp
(60 = วินาที * 60 = นาที * 24 ชั่วโมง) = 1 วันพอดี

ตัว ceil มีไว้เพื่อปัดทศนิยมขึ้น (ใช้ในบางกรณี มีหรือไม่มีก็ได้ แต่มีจะดีกว่า)


เพิ่มเติม หากอยากรู้ว่า 7 วันที่แล้วเป็นวันอะไรลองทำตามดูครับ
$today = date("d-m-Y"); //วันนี้
$answer = date("d-m-Y",strtotime("-7 days",strtotime($today))); // เจ็ดวันที่แล้ว
echo $answer; //คำตอบ

** -7 days ก็หมายความว่า เจ็ดวันที่แล้วมีอีกหลายอย่างให้เล่นเลยครับเด๋วไว้มาต่อ


หาวันที่ตอนสิ้นเดือนนะครับ
echo date("t-m-Y", strtotime("1-12-2018"));  //หาจำนวนวันสิ้นเดือนของเดือนธันวา ผลลัพธ์ = 31
ส่วนใหญ่ วันสิ้นเดือนนี้ ส่วนใหญ่เอาไว้ใช้ ประยุกต์ ดักหาของเดือน กุมภาพันธ์ หรือเดือน 2 นั่นล่ะครับที่แต่ละปีวันมันไม่เท่ากัน