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:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

     ผลลัพธ์ที่ได้


     อธิบายโปรแกรม 

          บรรทัดที่  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:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

     ผลลัพธ์ที่ได้


     อธิบายโปรแกรม

          บรรทัดที่ 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:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

     ผลลัพธ์ที่ได้


     อธิบายโปรแกรม

          บรรทัดที่ 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:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

     ผลลัพธ์ที่ได้


     อธิบายโปรแกรม 

          บรรทัดที่ 1 เปิดแท็กคำสั่งภาษาพีเอชพี

          บรรทัดที่ 2 - 4 ใช้ฟังก์ชัน checkdate() ตรวจสอบควมถูกต้องของวันเดือนปีตามข้อมูลที่กำหนด หากวันเดือนปีที่ตรวจสอบไม่มีอยู่จริงจะคืนค่าเป็นเท็จ แต่ถ้าตรวจสอบแล้วว่ามีอยู่จริงจะคืนค่าเป็นจริง และให้ฟังก์ชัน var_dump() แสดงชนิดข้อมูลและค่าของข้อมูลออกมา ซึ่งชนิดข้อมูลในที่นี้คือ bool

          บรรทัดที่ 5 ปิดแท็กคำสั่งภาษาพีเอชพี