Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

การเปรียบเทียบวันที่ใน PHP


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

กรณีที่ 1:

เราสามารถวิเคราะห์วันที่โดยใช้ตัวดำเนินการเปรียบเทียบอย่างง่ายได้หากวันที่ที่ระบุอยู่ในรูปแบบที่คล้ายกัน

<?php
   $date1 = "2018-11-24";
   $date2 = "2019-03-26";
   if ($date1 > $date2)
     echo "$date1 is latest than $date2";
   else
     echo "$date1 is older than $date2";
?>

ผลลัพธ์:

2019-03-26 is latest than 2018-11-24

คำอธิบาย:

ที่นี่เราได้ประกาศวันที่สองวันที่ $date1 และ $date2 ในรูปแบบเดียวกัน ดังนั้นเราจึงใช้ตัวดำเนินการเปรียบเทียบ (>) เพื่อเปรียบเทียบวันที่

กรณีที่ 2:

หากวันที่ที่ระบุอยู่ในรูปแบบต่างๆ ณ จุดนั้น เราสามารถใช้ฟังก์ชัน strtotime() เพื่อแปลงวันที่ที่กำหนดเป็นรูปแบบการประทับเวลา UNIX และวิเคราะห์การประทับเวลาที่เป็นตัวเลขเหล่านี้เพื่อให้ได้ผลลัพธ์ที่คาดหวัง

ตัวอย่าง:

<?php
   $date1 = "18-03-22";
   $date2 = "2017-08-24";
   $curtimestamp1 = strtotime($date1);
   $curtimestamp2 = strtotime($date2);
   if ($curtimestamp1 > $curtimestamp2)
      echo "$date1 is latest than $date2";
   else
      echo "$date1 is older than $date2";
?>

ผลลัพธ์:

18-03-22 is latest than 2017-08-24

คำอธิบาย:

ในตัวอย่างนี้ เรามีวันที่สองวันซึ่งอยู่ในรูปแบบที่แตกต่างกัน ดังนั้นเราจึงใช้ฟังก์ชันที่กำหนดไว้ล่วงหน้า strtotime() แปลงเป็นตัวเลขประทับเวลา UNIX จากนั้นเพื่อเปรียบเทียบการประทับเวลาเหล่านั้น เราใช้ตัวดำเนินการเปรียบเทียบที่แตกต่างกันเพื่อให้ได้ผลลัพธ์ที่ต้องการ

กรณีที่ 3:

เปรียบเทียบวันที่สองโดยการสร้างวัตถุของคลาส DateTime

ตัวอย่าง:

<?php
   $date1 = new DateTime("18-02-24");
   $date2 = new DateTime("2019-03-24");
   if ($date1 > $date2) {
    echo 'datetime1 greater than datetime2';
   }
   if ($date1 < $date2) {
    echo 'datetime1 lesser than datetime2';
   }
  if ($date1 == $date2) {
    echo 'datetime2 is equal than datetime1';
   }
?>

ผลลัพธ์:

datetime1 lesser than datetime2

คำอธิบาย:

ในตัวอย่างนี้ เราได้สร้างวัตถุ DateTime สองรายการ เพื่อเปรียบเทียบวันที่ทั้งสอง เราใช้ตัวดำเนินการเปรียบเทียบที่แตกต่างกันเพื่อให้ได้ผลลัพธ์ที่ต้องการ