PHP Function Date การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. ( วันที่แบบไทย ๆ สำหรับคนไทย )
หลาย ๆ คน คงจะเคยเจอปัญหาและหลายคนอาจจะกำลังมีปัญหาเกี่ยวกับเรื่องวันที่ไม่ว่าจะเป็นการเขียนโปรแกรมด้วยภาษาอะไร ก็ต้องเจอปัญหาเดียวกันนี้ทั้งนั้น ถ้ารู้เทคนิคและวิธีการก็จะผ่านมันไปได้ แต่ละคนก็จะมีเทคนิคที่แตกต่างกันออกไป ซึ่งทั้งหมดนี้สามารถค้นหาได้จากอินเตอร์เน็ตบทความนี้จะพูดถึงการแปลงวันที่จาก ค.ศ. เป็น พ.ศ. เอาแบบง่าย ๆ นี่หล่ะ ถ้าใครไม่เข้าใจอะไรตรงไหน ก็อย่าเก็บเอาไว้คนเดียว
ตัวอย่างโค้ด เป็นดังนี้ครับ (สามารถเอาไปไว้ใช้งานได้เลย)
<?
$thaiweek=array("วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัส","วันศุกร์","วันเสาร์");
$thaimonth=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม"," มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
echo $thaiweek[date("w")] ,"ที่",date(" j "), $thaimonth[date(" m ")-1] , " พ.ศ. ",date(" Y ")+543;
// ผลลัพธ์จะได้ดังนี้ครับ วันเสาร์ที่ 26 กันยายน พ.ศ. 2552
?>
อธิบายโค้ดกันเล็กน้อย เพื่อความเข้าใจที่ถูกต้อง ตรงกัน
$thaiweek เป็นตัวแปรที่ใช้เก็บวันครับ จะเก็บแบบ array() ข้อมูลแรกจะเริ่มจากศูนย์(0) เสมอ
หากต้องการทดสอบว่า array() ตัวไหนเก็บค่าอะไรไว้ ก็ลอง Echo() ดูกันได้ ดังนี้
echo $thaiweek[0]; จะได้ผล = วันอาทิตย์
echo $thaiweek[1]; จะได้ผล = วันจันทร์
echo $thaiweek[2]; จะได้ผล = วันอังคาร
echo $thaiweek[3]; จะได้ผล = วันพุธ
echo $thaiweek[4]; จะได้ผล = วันพฤหัส
echo $thaiweek[5]; จะได้ผล = วันศุกร์
echo $thaiweek[6]; จะได้ผล = วันเสาร์
หากต้องการรู้ว่า เราส่งค่าอะไรเข้าไปในฟังก์ชั่น thaiweek ก็ให้ลอง Echo date("w"); ดูครับ
สำหรับตัวอย่างนี้จะได้ค่า 6 จากโค้ด $thaiweek[date("w")] จะเป็นการส่งค่า คือ 6 เข้าไปเช็ค
ในฟังก์ชั่น thaiweek ก็จะได้ค่าเป็น วันเสาร์
ส่วนฟังก์ชั่น thaimonth นั่นก็มีหลักการทำงานเช่นเดียวกันกับฟังก์ชั่น thaiweek ครับ
สิ่งที่แตกต่างก็จะอยู่ที่ตอนส่งค่าเข้าไปตรวจเช็ค $thaimonth[date(" m ")-1] จะสังเกตุเห็นว่า จะมี -1 อยู่ด้วย
อันนี้ก็เพราะว่าฟังก์ชั่น date(" m ") จะได้ค่าตัวเลขเดือนออกมา ในที่นี้คือ 09 (เดือนกันยายน) ซึ่งบางคนอาจจะบอกว่า
"อ้าว ไม่ก็ถูกแล้วนี่ ทำไมไม่ส่งค่าเข้าไปตรง ๆ เลยหล่ะ"
ถ้าส่งค่า 9 เข้าไปเช็ค ผลที่ได้จะเป็นเดือนตุลาคม เพราะอะไรนะหรอ
ก็เพราะว่าในตัวแปร array() ที่ชื่อว่า thaimonth() นั้น ข้อมูลแรกมันจะเริ่มต้นที่ศูนย์ (0)
จึงเป็นเหตุที่เราต้องมีการ -1 เข้าไป เพื่อให้ได้ผลลัพธ์ที่ถูกต้องนั่นเอง
ส่วนโค้ดตรงส่วน date(" Y ")+543; นั้น ก็อธิบายได้ว่า
เมื่อเราลอง Echo date(" Y ") ค่าที่ได้จะเป็นปี ค.ศ. นะครับ ซึ่งเราไม่ต้องการครับ
และจากการคำนวณ ปี ค.ศ. กับปี พ.ศ. นั้นจะห่างกันอยู่ 543 ปี
จึงเป็นที่มาของการ +543 เข้าไปในโค้ดอย่างที่เห็นครับ จะได้เป็น 2009+543 = 2552 ตามความต้องการ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น