PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย

PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย

PHP CODE FATHER โปรแกรมช่วยสร้างโค้ด โปรเจ็ค PHP+MySQL+Boostrap ใช้งานง่าย ๆ


         หลาย ๆ คน คงจะเคยเจอปัญหาและหลายคนอาจจะกำลังมีปัญหาเกี่ยวกับเรื่องวันที่
ไม่ว่าจะเป็นการเขียนโปรแกรมด้วยภาษาอะไร ก็ต้องเจอปัญหาเดียวกันนี้ทั้งนั้น
ถ้ารู้เทคนิคและวิธีการก็จะผ่านมันไปได้ แต่ละคนก็จะมีเทคนิคที่แตกต่างกันออกไป
ซึ่งทั้งหมดนี้สามารถค้นหาได้จากอินเตอร์เน็ต ผมเองก็เช่นกันแรก ๆ ก็มึนตึ้บเหมือนกันครับ

บทความนี้จะพูดถึงการแปลงวันที่จาก ค.ศ. เป็น พ.ศ. กันนะครับ
เอาแบบง่าย ๆ นี่หล่ะ ถ้าใครไม่เข้าใจอะไรตรงไหน ก็อย่าเก็บเอาไว้คนเีดียวนะครับ

ตัววอย่างโค้ด เป็นดังนี้ครับ (สามารถเอาไปไว้ใช้งานได้เลยนะครับ)

?
     $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 ตามความต้องการ


อันนี้เป็นโค้ดสำหรับแสดงผลแบบง่าย ๆ เท่านั้นนะครับ
สำหรับเรื่องของวันที่นั้น ยังมีอีกเยอะแยะมากมายโดยเฉพาะเมื่อต้องเกี่ยวข้องกับฐานข้อมูล
ซึ่งส่วนมากจะเป็นการเลือกดูตามความต้องการเช่น เลือกดูเฉพาะเดือน เลือกดูจากเดือนนี้ ถึงเดือนนี้ เลือกดูตามปี เป็นต้น
ซึ่งจะขอเอามาพูดถึงในบทความต่อไป ๆ นะครับ เพราะคิดว่าหลาย ๆ คนคงจะเคยเจอปัญหานี้

เช่นเดียวกันกับผม ที่เคยเจอมาก่อน ซึ่งดูแล้วจะเยอะพอสมควร แต่ก็จะพยายามต่อไปครับ
 

"เพราะความรู้ คือการแบ่งปัน และการให้ ยิ่งใหญ่ ไร้เทียมทาน"

ย้อนกลับ กลับหน้าแรก