วิธีการ diff ของคลาส DateTime

วิธีการ diff ของคลาส DateTime รับอ็อบเจกต์ DateTime อีกอันเป็นพารามิเตอร์และส่งกลับอ็อบเจกต์ DateInterval ซึ่งมีข้อมูลความแตกต่างระหว่างวันที่ ความแตกต่างสามารถนำมาได้ในหน่วยวัดต่างๆ (วัน, เดือน, ปี เป็นต้น)

ไวยากรณ์

php$interval = $datetime1->diff($datetime2);

ตัวอย่าง

มาคำนวณความแตกต่างระหว่างสองวันที่:

php<?php
  $date1 = new DateTime('2023-01-01');
  $date2 = new DateTime('2023-02-15');
  $interval = $date1->diff($date2);
  echo $interval->format('%R%a days');
?>

ผลลัพธ์จากการทำงานของโค้ด:

php'+45 days'

ตัวอย่าง

ขอความแตกต่างในหน่วยเดือนและวัน:

php<?php
  $date1 = new DateTime('2023-03-10');
  $date2 = new DateTime('2023-05-25');
  $interval = $date1->diff($date2);
  echo $interval->format('%m months %d days');
?>

ผลลัพธ์จากการทำงานของโค้ด:

php'2 months 15 days'

ตัวอย่าง

การเปรียบเทียบวันที่โดยคำนึงถึงเวลา:

php<?php
  $date1 = new DateTime('2023-01-01 10:00:00');
  $date2 = new DateTime('2023-01-01 14:30:00');
  $interval = $date1->diff($date2);
  echo $interval->format('%h hours %i minutes');
?>

ผลลัพธ์จากการทำงานของโค้ด:

php'4 hours 30 minutes'

ดูเพิ่มเติม

  • ฟังก์ชัน date,
    ซึ่งจัดรูปแบบวันที่และเวลา
  • ฟังก์ชัน strtotime,
    ซึ่งแปลงสตริงเป็นค่า timestamp
  • คลาส DateInterval,
    ซึ่งแทนช่วงเวลา