4.6 ฟังก์ชันเกี่ยวกับวันและเวลา (Date/Time Function)
วันเวลาในการเขียนโปรแกรมเชื่อมต่อกับระบบฐานข้อมูลถือว่าเป็นส่วนที่สําคัญ เนื่องจากสามารถตรวจสอบวันเวลาที่ข้อมูลถูกบันทึก หรือ แก้ไข ภาษาพีเอชพีได้จัดเตรียมฟังก์ชันเกี่ยวกับวันที่ (date) และเวลา (time) ไว้ให้ใช้งานหลากหลายรูปแบบ ซึ่งสามารถเลือกกําหนดค่าและนําเอาไปใช้ งานได้ตามความต้องการ ในที่นี้จะกล่าวถึงฟังก์ชันสําเร็จรูปของภาษาพีเอชพีที่นิยมใช้งาน หรือถูก เรียกใช้งานบ่อย ซึ่งน่าสนใจมีดังนี้
4.6.1 ฟังก์ชัน time()
ฟังก์ชัน time() เป็นฟังก์ชันที่ใช้สําหรับแสดงวันที่และเวลาโดยเฉพาะ มีฟังก์ชันที่น่าสนใจ ดังนี้ timestamp โดยเริ่มนับตั้งแต่ 1 มกราคม ค.ศ. 1970 เวลา 00:00:00 จะแสดงเวลาเป็นหน่วยวินาที ตามเวลา GMT จนถึงเวลาปัจจุบัน
รูปแบบ การใช้งานฟังก์ชัน time()
ตัวอย่างโปรแกรมที่ 4.12 การใช้งานฟังก์ชัน time()
เขียนคำสั่งการสร้างฟังก์ชัน ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_time.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กคำสั่งภาษาพีเอชพี
บรรทัดที่ 2 ให้ตัวแปร t เก็บค่าของฟังก์ชัน time()
บรรทัดที่ 3 ใช้ฟังก์ชัน time() แสดงวันที่และเวลาปัจจุบันในรูปแบบของ Unix timestamp โดยเริ่มนับค่าตั้งแต่ 1 มกราคม ค.ศ.1970 เวลา 00:00:00 จะแสดงเวลาเป็นหน่วยวินาที ตามเวลา GMT จนถึงเวลาปัจจุบัน แล้วใช้คำสั่ง echo แสดงค่าที่ได้จากตัวแปร $t ออกมา
บรรทัดที่ 4 ปิดแท็กคำสั่งภาษาพีเอชพี
4.6.2 ฟังก์ชัน date()
ฟังก์ชัน date() เป็นฟังก์ชันที่ใช้ในการจัดรูปแบบวันที่และเวลาปัจจุบัน ตามรูปแบบที่ ผู้ใช้งานต้องการตามแต่ละท้องที่ ซึ่งจะใช้ตัวอักษรภาษาอังกฤษเป็นสัญลักษณ์ที่ใช้แทนรูปแบบวันเวลาที่ต้องการ
ตารางที่ 4.1 รูปแบบที่ใช้แทนวันและสัปดาห์
รูปแบบ | คำอธิบาย |
d | ใช้แทนวันที่ของเดือนเป็นตัวเลข 2 หลัก เช่น 01, 02, 03, … 31 |
D | ใช้แทนชื่อย่อของวันในแต่ละสัปดาห์ จะแสดง 3 ตัวอักษร เช่น sun, mon, thu, … sat |
j | ใช้แทนวันที่ของเดือนแต่จะไม่มีเลข 0 นําหน้าเลขหลักเดียว เช่น 1, 2, 3, … 31 |
l | ใช้แทนชื่อเต็มของวันในแต่ละสัปดาห์ เช่น sunday, Monday, … |
N | ใช้แทนวันในรอบสัปดาห์ ตามมาตรฐาน ISO-8601 (1 Monday, 7 Sunday) |
S | ใช้แทนชื่อย่อที่บอกลําดับวันที่ของเดือน เช่น st, nd, rd, th |
w | ใช้แทนลําดับของวันในแต่ละรอบสัปดาห์ตั้งแต่ 0 – 6 |
z | ใช้แทนลําดับของวันในรอบปีตั้งแต่ 0 – 365 |
W | ใช้แทนลำดับของสัปดาห์ในรอบปี |
ตารางที่ 4.2 รูปแบบที่ใช้แทนเดือน
รูปแบบ | คำอธิบาย |
F | ใช้แทนวันที่ของเดือนเป็นตัวเลข 2 หลัก เช่น 01, 02, 03, … 31 |
M | ใช้แทนชื่อเดือนอย่างย่อเฉพาะ 3 ตัวแรก เช่น Jan, Feb, Mar, … |
m | ใช้แทนลําดับของเดือนในรอบปีมีเลข 0 นําหน้าเลขหลักเดียว เช่น 01, 02 , .. 1 |
n | ใช้แทนลําดับของเดือนที่ไม่มีเลข 0 นําหน้าเลขหลักเดียว เช่น 1, 2, 3, .. 12 |
t | ใช้แทนจํานวนวันของเดือนนั้นๆ เช่น 28, 30, 3 |
ตารางที่ 4.3 รูปแบบที่ใช้แทนปี
รูปแบบ | คำอธิบาย |
L | ใช้แทนปีที่เดือนกุมภาพันธ์มี 29 วันหรือไม่ (leap year) ค่าที่ได้จะเป็น 0 และ 1 |
Y | ใช้แทนปี ค.ศ. โดยแสดงผลเป็นตัวเลข 4 หลัก เช่น 2016 |
y | ใช้แทนปี ค.ศ. โดยแสดงผลเป็นตัวเลข 2 หลัก เช่น 16 |
0 | ใช้แสดงปีตามมาตรฐาน ISO-8601 |
ตารางที่ 4.4 รูปแบบที่ใช้แทนเวลา
รูปแบบ | คำอธิบาย |
a | ใช้แทนค่าเวลาในขณะนั้นเป็น am (ante Meridiem) และ pm (Post Meridiem) |
A | ใช้แทนค่าเวลาในขณะนั้นเป็น AM และ PM |
B | ใช้แทนวันที่ของเดือน ตั้งแต่ 1 – 31 แบบไม่มี 0 นำหน้า |
g | ใช้แทนค่าชั่วโมงแบบ 12 ชั่วโมง โดยไม่มี 0 นําหน้าเลขตัวเดียว เช่น 0 - 12 |
G | ใช้แทนค่าชั่วโมงแบบ 24 ชั่วโมง โดยไม่มี 0 นําหน้าเลขตัวเดียว เช่น 0 - 24 |
h | ใช้แทนค่าชั่วโมงแบบ 12 ชั่วโมง โดยมี 0 นําหน้าเลขตัวเดียว เช่น 00 - 12 |
H | ใช้แทนค่าชั่วโมงแบบ 24 ชั่วโมง โดยมี 0 นําหน้าเลขตัวเดียว เช่น 00 - 24 |
i | ใช้แทนค่านาทีแบบมีเลข 0 นําหน้าเลขตัวเดียว เช่น 00 – 59 |
s | ใช้แทนค่าวินาทีแบบมีเลข 0 นําหน้าเลขตัวเดียว เช่น 00 – 59 |
O | ใช้แทนค่าความแตกต่างเมื่อเทียบกับเวลา Greenwich time (GMT) เป็นชั่วโมง |
r | ใช้แสดงเวลามาตรฐานของ RFC 2822 เช่น Tue, 27 Oct 2021 23:10:12 +0700 |
รูปแบบ การใช้งานฟังก์ชัน date()
ตัวอย่างโปรแกรมที่ 4.13 การใช้งานฟังก์ชัน date()
เขียนคำสั่งการสร้างฟังก์ชัน ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_date.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กคำสั่งภาษาพีเอชพี
บรรทัดที่ 2 ให้ตัวแปร $date1 เก็บค่าของฟังก์ชัน date() แสดงวันที่ปัจจุบันในรูปแบบ Y-m-d
บรรทัดที่ 3 ให้ตัวแปร $date2 เก็บค่าของฟังก์ชัน date() แสดงวันที่ปัจจุบันในรูปแบบ d/m/y
บรรทัดที่ 4 ให้ตัวแปร $date3 เก็บค่าของฟังก์ชัน date() แสดงวันที่ปัจจุบันในรูปแบบ Y.m.d
บรรทัดที่ 5 - 7 ใช้คำสั่ง echo แสดงค่าที่ได้จากฟังก์ชัน date() ในรูปแบบต่าง ๆ ออกมา
บรรทัดที่ 8 ปิดแท็กคำสั่งภาษาพีเอชพี
4.6.3 ฟังก์ชัน getdate()
ฟังก์ชัน getdate() เป็นฟังก์ชันที่ใช้สําหรับแสดงวันที่และเวลาเช่นเดียวกับฟังก์ชัน date() แต่ไม่สามารถกําหนดรูปแบบเองได้ และแสดงค่าเป็นแบบอาร์เรย์ (Array) โดยกําหนด key ของตัวแปรอาร์เรย์
ตารางที่ 4.5 ตารางแสดง key ของอาร์เรย์ที่ได้จากฟังก์ชัน getdate()
Key | คำอธิบาย | ค่าที่ได้ |
“seconds” | แสดงค่าวินาทีเป็นตัวเลข | 0 – 59 |
“minutes” | แสดงค่านาทีเป็นตัวเลข | 0 – 59 |
“hours” | แสดงค่าชั่วโมงเป็นตัวเลข | 0 – 23 |
“mday” | แสดงค่าวันของเดือนเป็นตัวเลข | 1 – 31 |
“wday” | แสดงค่าวันของสัปดาห์เป็นตัวเลข | 0 (คือ Sunday) ถึง 6 (คือ Saturday) |
“mon” | แสดงค่าเดือนเป็นตัวเลข | 1 – 12 |
“year” | แสดงค่าปีเป็นตัวเลขจำนวนเต็ม 4 หลัก | เช่น 1999,2015 |
“yday” | แสดงค่าวันของปีเป็นตัวเลข | 0 – 365 |
“weekday” | แสดงชื่อวันในรอบสัปดาห์ | Sunday – Saturday |
“month” | แสดงชื่อเดือน | January - December |
0 | แสดงค่าวินาทีแบบ Unix timestamp นับจาก 1 มกราคม 1970 | เช่น 1445964154 |
รูปแบบ การใช้งานฟังก์ชัน getdate()
Timestamp คือ พารามิเตอร์ชนิดตัวเลขจำนวนเต็ม ของเวลาปัจจุบันบนระบบ Unix ถ้าไม่มีการกำหนดค่าใด ๆ ค่าโดยปริยายคือ ค่าของฟังก์ชัน time() หรือวันเวลาปัจจุบัน
ตัวอย่างโปรแกรมที่ 4.14 การใช้งานฟังก์ชัน getdate()
เขียนคำสั่งการสร้างฟังก์ชัน ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_getdate.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กคำสั่งภาษาพีเอชพี
บรรทัดที่ 2 ให้ตัวแปร $now เก็บค่าฟังก์ชัน getdate() ซึ่งแสดงวันที่และเวลาเป็นแบบอาร์เรย์
บรรทัดที่ 3 ใช้คำสั่ง print_r แสดงค่าของตัวแปร $now ออกมา
บรรทัดที่ 4 ปิดแท็กคำสั่งภาษาพีเอชพี
4.6.4 ฟังก์ชัน checkdate()
ฟังก์ชัน checkdate() เเป็นฟังก์ชันสําหรับตรวจสอบวันที่ระบุว่ามีอยู่จริงหรือไม่ โดยฟังก์ชัน จะคืนค่าเป็นจริง (true) หากมีวันตามที่ระบุ หรือ หากไม่มีฟังก์ชันจะคืนค่าเป็นเท็จ (false)
รูปแบบ การใช้งานฟังก์ชัน checkdate()
month คือ ค่าตัวเลขที่แสดงเดือน ค่า 1 ถึง 12
day คือ ค่าตัวเลขที่แสดงวัน ค่า 1 ถึง 31
year คือ ค่าตัวเลขที่แสดงปี ค่า 1 ถึง 32767
ตัวอย่างโปรแกรมที่ 4.15 การใช้งานฟังก์ชัน checkdate()
เขียนคำสั่งการสร้างฟังก์ชัน ตามตัวอย่าง แล้วบันทึกไฟล์ชื่อ function_checkdate.php
Source Code:
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 เปิดแท็กคำสั่งภาษาพีเอชพี
บรรทัดที่ 2 - 4 ใช้ฟังก์ชัน checkdate() ตรวจสอบควมถูกต้องของวันเดือนปีตามข้อมูลที่กำหนด หากวันเดือนปีที่ตรวจสอบไม่มีอยู่จริงจะคืนค่าเป็นเท็จ แต่ถ้าตรวจสอบแล้วว่ามีอยู่จริงจะคืนค่าเป็นจริง และให้ฟังก์ชัน var_dump() แสดงชนิดข้อมูลและค่าของข้อมูลออกมา ซึ่งชนิดข้อมูลในที่นี้คือ bool
บรรทัดที่ 5 ปิดแท็กคำสั่งภาษาพีเอชพี