6/01/2555

การหาวันที่ถัดไป/ย้อนหลัง n วัน ใน php

    ในบางระบบเราจำเป็นที่จะต้องหาวันที่ในวันถัดไป เช่น เราต้องการหาวันที่ถัดจากวันปัจจุบันไป 5 วัน หรือ วันที่ก่อนเมื่อวานนี้ 2 วัน เราสามารถหาวันที่ก่อนหน้า และย้อนหลัง โดยใช้ PHP ได้ดังนี้



<?php
     
//การหาวันที่ถัดไป
echo date('Y-m-d', strtotime(' +1 day'));//แสดงวันที่วันพรุ่งนี้


echo date('Y-m-d', strtotime('+60 day', strtotime("2012-5-2")));
//แสดงวันที่ถัดไปจากวันที่ 2 พค 2554 ไป 60 วัน

//การหาวันที่ก่อนหน้า
echo date('Y-m-d', strtotime(' -1 day'));//แสดงวันที่ของเมื่อวานนี้


echo date('Y-m-d', strtotime('-60 day', strtotime( "2012-1-31" )));
//แสดงวันที่ย้อนหลังไปจากวันที่ 1 มค 2554 ไป 60 วัน

?>



จะสังเกตุว่าเราสามารถหาวันที่ถัดไป หรือวันที่ย้อนหลังโดย ใส่ parameter เพิ่มเข้าไปใน function date() 
โดย Parameter แรกเป็น Format วันที่ของผลที่แสดงในที่นี้คือ 'Y-m-d' คือ ปี-เดือน-วัน
Parameter ที่สองเป็น strtotime('') ซึ่ง หากต้องการหาวันที่ย้อนหลัง หรือวันหน้าหน้าจากวันปัจจุบัน ก็ให้ใส่ + หรือ - ตามด้วย จำนวนวันได้เลย ซึ่งหากใส่เป็น + จะเป็นการหาวันที่ในวันถัดๆไป หากใส่เป็น - จะเป็นการหาวันที่ ย้อนหลัง  แต่ถ้าต้องการให้เริ่มนับวันจากวันที่กำหนด ซึ่งไม่ใช้วันปัจจุบัน ให้ใส่ strtotime( "ปี-เดือน-วัน" ) เป็น Parameter เพิ่มเข้าไปใน strtotime('') ดังตัวอย่าง