PHP Date and Time

ในการใช้งาน วันที่/เวลา นั้นสามารถใช้ฟังก์ชัน date() ซึ่งแสดงวัน เวลาได้อย่างสะดวกรวดเร็ว

ไวยากรณ์

date(format,timestamp);
  • format คือ รูปแบบการเรียกใช้งานวันที่หรือเวลา 
  • timestamp คือ วันเวลาปัจจุบัน

 

รูปแบบของการเรียกใช้ วัน เดือน ปี

  • d แสดงถึงวันที่ ตั้งแต่ 01-31
  • m แสดงถึงเดือน ตั้งแต่ 01-12
  • y แสดงถึงปี ในรูปแบบตัวเลข 2 หน่วย
  • D แสดงถึงวันเป็นคำย่อ เช่น Sun, Mon, Tue , …
  • M แสดงถึงเดือนเป็นคำย่อ เช่น Jan, Feb, Mar, …
  • Y แสดงถึงปีในรูปแบบของตัวเลข 4 หน่วย
  • l  แสดงถึงวัน เต็มรูปแบบการเชียนปกติ เช่น Sunday, Monday, Tueday, …

ซึ่งเราสามารถที่จะแทรกอักขระเหล่านี้ลงไปได้ด้วย เช่น “-“, “.”, “/” ดังตัวอย่างที่ 1 

 

ตัวอย่างที่ 1 

<?php

date("d-m-y")."<br>";
date("D-M-Y")."<br>";
date("l")."<br>";

?>

ไฟล์ที่ 1 ตัวอย่างการใช้รูปแบบแสดง วัน เดือน ปี

 

รูปแบบการเรียกใช้ เวลา

  • h รูปแบบเวลา 12 ชั่วโมง ตั้งแต่ 01-12
  • H รูปแบบเวลา 24 ชั่วโมง ตั้งแต่ 00-23
  • i นาที ตั้งแต่ 00-59
  • s วินาที ตั้งแต่ 00-59
  • a ใช้แสดงช่วงเวลาปัจจุบัน (am / pm)

ตัวอย่างที่ 2 แสดงรูปแบบเวลา

<?php

echo date("h-i-s.a")."<br>";
echo date("H:i:s.a");

?>

ไฟล์ที่ 2 แสดงรูปแบบเวลา

คำชี้แจง : หากเครื่องเซิร์ฟเวอร์ที่ใช้ อยู่ต่างเมือง หรือต่างประเทศที่มีขอบเขตเวลา (timezone) ที่แตกต่างกันจะทำให้เวลาที่แสดงผลออกหน้าจอเป็นเวลาปัจจุบันของที่ตั้งเซิร์ฟเวอร์

การแก้ปัญหา : ทำการกำหนด timezone ที่เราต้องการ ดังตัวอย่างที่ 2 ซึ่งในตัวอย่างจะกำหนด timezone เป็น Asia/Bangkok 

 

ตัวอย่างที่ 3 กำหนด timezone

<?php
date_default_timezone_set("Asia/Bangkok");
echo "The time is " . date("H:i:s.a");
?>

ไฟล์ที่ 3 กำหนด timezone

ตาราง : Timezone

 

การแปลงสตริงด้วยฟังก์ชัน strtotime()

strtotime() เป็นฟังก์ชันที่ใช้ในการแปลงสตริงจากภาษาที่มนุษย์อ่านแล้วเข้าใจ เป็นตัวเลขวันที่ เวลา 

ไวยากรณ์

strtotime(time, now)

 

ตัวอย่างที่ 1 การแปลงสตริงเป็นวันที่ เวลา

<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

ไฟล์ที่ 4 แปลงสตริงเป็นวันที่ด้วย strtotime()

 

ตัวอย่างที่ 2 การแปลงสตริงเป็นวันที่ เพิ่มเติม

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d2=strtotime("next friday");
echo date("Y-m-d h:i:sa", $d2) . "<br>";

$d3=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d3) . "<br>";
?>

ไฟล์ที่ 5 แปลงสตริงเป็นวันที่ เพิ่มเติม

จากไฟล์ที่ 5 บรรทัดที่ 2 แปลงสตริงคำว่า “tomorrow” ซึ่งมีความหมายที่มนุษย์เข้าใจว่า “พรุ่งนี้” กลายเป็นวันที่ สมมติถ้าวันนี้เป็นวันที่ 1 tomorrow ก็หมายถึง 2 นั่นเอง

บรรทัดที่ 5 “next friday” หมายถึง วันศุกร์ถัดไป หรือวันศุกร์ที่จะถึง ตัวอย่างเช่น วันนี้เป็นวันพุธที่ 7 next friday จะเท่ากับ 9 นั่นเอง

บรรทัดที่ 8 “+3 Months” หมายถึง นับถัดจากเดือนปัจจุบันไปอีก 3 เดือน 

 

หากคุณพบคำที่สะกดผิด เว้นวรรคไม่ถูกต้อง ฯ โปรดแจ้งให้เราทราบ โดยลากคลุม (highlight) ข้อความนั้น แล้วกด Ctrl + Enter

ไม่สามารถคัดลอกเนื้อหานี้

Spelling error report

The following text will be sent to our editors: