ข้อมูลเกี่ยวกับวันเวลา (DATE & TIME) นี้.
เป็นข้อมูลที่สำคัญและน่าสนใจในการพัฒนาเว็ปไซต์ด้วย PHP ซึ่งเป็นอีกหนึ่งหัวใจสำคัญของการเขียนโปรแกรม การเขียนสคริปต์ต่างๆ โดยมีการทำงานหลากหลายรูปแบบที่ต้องอาศัยฟังก์ชั่นเกี่ยวกับวันเวลา เช่น ทำบันทึกการเข้า-ออกเวลาทำงาน , การบันทึกวันหยุดต่างๆ เป็นต้น
time() เป็นฟังก์ชั่นที่ใช้ในการอ่านค่าวันเวลา ณ ปัจจุบัน ค่าที่ได้จากฟังก์ชั่นที่จะอยู่ในรูปแบบ timestamp ซึ่งส่วนมากผู้ใช้งานจะนำไปพัฒนาต่อยอดใช้กับฟังก์ชั่นอื่นๆต่อไป
strtotime() เป็นฟังก์ชั่นที่ใช้แปลงค่าจากสตริงให้เป็นข้อมูลวันเวลาในรูปแบบ timestamp ซึ่งรูปแบบสตริงนั้นต้องเขียนในรูปแบบที่ทำให้แปลงค่าได้ นั่นคือต้องเขียนแบบ Month/Date/Year ซึ่งถ้าแปลงไม่ได้ ตัวโปรแกรมจะส่งค่า false กลับมา เช่น
$timestamp = strtotime(“12/31/2010”);
$timestamp = strtotime(“31 December 2010”); //OK ทั้งสองค่านี้คือเป็น true อ่านค่าออกมาได้
ฟังก์ชั่นในการอ่น และตรวจสอบวันเวลา
getdate([timestamp]) เป็นการอ่านค่าบางส่วนของวันเวลา ตามแต่เราจะกำหนดว่าจะอ่านค่าใด โดยอ้างอิงจากค่า timestamp ซึ่งถ้าไม่กำหนด จะอ่านค่าวันเวลา ณ ปัจจุบันเป็น default แต่หากมีการกำหนด อาจใช้ค่าจากฟังก์ชั่น strtotime() ได้เช่นกัน ซึ่งการใช้ฟังก์ชั่นนี้ จะส่งค่าคืนมาเป็น อาร์เรย์แบบ Key/Value ซึ่งค่า Key ในการอ่านข้อมูลจะมีดังนี้
Key => seconds คือ “วินาที” มีค่าตั้งแต่ 0-59
Key => minutes คือ “นาที” มีค่าตั้งแต่ 0-59
Key => hours คือ “ชั่วโมง” มีค่าตั้งแต่ 0-23
Key => mday คือ “วันที่” มีค่าตั้งแต่ 1-31
Key => wday คือ “ลำดับของวันในรอบสัปดาห์” มีค่าตั้งแต่ 0-6 (อาทิตย์-เสาร์)
Key => mon คือ “ลำดับของเดือนในรอบปี” มีค่าตั้งแต่ 1-12
Key => year คือ “ปี” เป็นเลขสี่หลักเช่น 2020
Key => yday คือ “ลำดับของวันในรอบปี” มีค่าตั้งแต่ 0-365
Key => weekday คือ “ชื่อวัน” มีค่าตั้งแต่ Sunday-Saturday
Key => month คือ “ชื่อเดือน” มีค่าตั้งแต่ January-December
ตัวอย่าง
$d = getdate();
echo $d[‘mday’].”-“.$d[‘month’].”-“.$d[‘year’];
//ผลลัพธ์คือ 15-January-2020
ฟังก์ชั่นในการกำหนดรูปแบบวันเวลา
วันเวลาสามารถกำหนดได้หลายรูปแบบดังนี้
date(รูปแบบวันเวลา[,timestamp]) โดยต้องระบุวันเวลาที่ต้องการใน timestamp หรือถ้าไม่กำหนด จะนับเวลาปัจจุบันแทน
อักขระใช้แทน “วัน” และ “สัปดาห์”
d – แทนวันที่ของเดือน เป็นเลข 2 หลัก เช่น 01,03,15
j – แทนวันที่ของเดือนแบบไม่มี 0 นำหน้า เช่น 1,3,15
D – แทนวันในแต่ละสัปดาห์แบบย่อ เช่น Sun, Mon, Tue
l – ตัว L พิมพ์เล็ก ใช้แทนวันในรอบสัปดาห์แบบชื่อเต็ม Sunday, Monday…