PHP: Date Time

Web Development

PHP: Date Time

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

มากกว่า 1 ปีที่ผ่านมา

1 min read

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

Function ที่ใช้บ่อย

strtotime

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

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

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

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

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

format

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

// 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
    $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 ที่ใช้เพิ่มเติมได้ที่

Tags:

PHP