9mza logo

9MZa.net

9mza logo

9MZa.net

Date Time ใน PHP

Web Development
Date Time ใน PHP

ในบทความนี้จะมารู้จักและใช้งาน Date Time ใน PHP กัน โดยผมอาจจะไม่ได้อธิบายทั้งหมด แต่จะยกมาเฉพาะที่ใช้กันบ่อยๆ ก่อนละกัน

Function ที่ใช้บ่อย

strtotime

strtotime จะใช้แปลงวันที่ให้เป็น timestamp ซึ่งเราสามารถใช้กับฟังก์ชัน date ได้เลย

PHP Logo
<?php echo strtotime('today'); // จะแสดงวันที่ปัจจุบัน อยู่รูปแบบ Unix Timestamp echo strtotime('now'); // จะแสดงเวลาและวันที่ปัจจุบัน อยู่รูปแบบ Unix Timestamp ?>

ความแตกต่างระหว่าง today กับ now คือ today จะเป็นเวลา 00:00:00 ของวันนั้น ส่วน now จะเป็นเวลาปัจจุบัน

เราสามารถใช้ strtotime กับวันที่ที่เราต้องการได้เลย

PHP Logo
<?php echo strtotime('2021-09-26'); // 1632643200 echo strtotime('7 days ago'); // 1632643200 echo strtotime('1 month ago'); // 1632643200 ?>

format

เมื่อได้ timestamp มาแล้ว เราสามารถมาแปลงให้อยู่ในรูปแบบอื่นๆ ที่เราต้องการได้

PHP Logo
// format date in php <?php echo date('Y-m-d', strtotime('today')); echo date('Y-m-d H:i:s', strtotime('now')); ?>

เรื่องเวลาและวันที่ใน PHP นั้นมีอีกหลายฟังก์ชันอีกมากมาย แต่ผมจะไม่ได้อธิบายทั้งหมด แต่ถ้าคุณต้องการเรียนรู้เพิ่มเติม สามารถอ่านเพิ่มเติมได้ที่ PHP Manual

ลองทำโปรแกรมคำนวณอายุ

หลังจากที่ได้รู้จัก Date Time ใน PHP กันละ มาลองทำโปรแกรมคำนวณอายุง่ายๆ กันหน่อย ซึ่งมีหลากหลายวิธีมาก แต่ผมจะใช้ build-in function ของ PHP สองตัว นั่นก็คือ date_diff และ date_create

PHP Logo
<?php $birthday = '1991-09-26'; $today = date('Y-m-d'); $diff = date_diff(date_create($birthday), date_create($today)); echo $diff->format('%y years, %m months and %d days'); ?>

อธิบายโค้ดกันหน่อย

  • กำหนดวันเกิดของเราเป็นตัวแปร $birthday
  • กำหนดวันที่ปัจจุบันเป็นตัวแปร $today
  • ใช้ฟังก์ชัน date_diff ในการคำนวณวันที่ โดยใช้ date_create ในการสร้างวันที่
  • และใช้ฟังก์ชัน format ในการแสดงผลออกมา

อ่านเรื่อง function ที่ใช้เพิ่มเติมได้ที่