Computer >> Máy Tính >  >> Lập trình >> PHP

So sánh ngày tháng trong PHP

Việc so khớp hai ngày trong PHP khá suôn sẻ khi cả hai ngày đều có định dạng giống nhau nhưng php không phân tích được khi hai ngày ở định dạng không liên quan. Trong bài viết này, chúng ta sẽ thảo luận về các trường hợp so sánh ngày tháng khác nhau trong PHP. Chúng tôi sẽ tìm ra cách sử dụng lớp DateTime, strtotime () để so sánh ngày tháng.

Trường hợp 1:

chúng ta có thể phân tích các ngày bằng toán tử so sánh đơn giản nếu các ngày đã cho có định dạng tương tự.

<?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";
?>

Đầu ra:

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

Giải thích:

Ở đây chúng ta đã khai báo hai ngày $ date1 và $ date2 theo cùng một định dạng. Vì vậy, chúng tôi đã sử dụng toán tử so sánh (>) để so sánh các ngày.

Trường hợp 2:

Nếu các ngày đã cho ở các định dạng khác nhau tại thời điểm đó, chúng tôi có thể sử dụng hàm strtotime () để chuyển đổi các ngày đã cho sang định dạng dấu thời gian UNIX và phân tích các dấu thời gian số này để có được kết quả mong đợi.

Ví dụ:

<?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";
?>

Đầu ra:

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

Giải thích:

Trong ví dụ này, chúng ta có hai Ngày có định dạng khác nhau. Vì vậy, chúng tôi đã sử dụng hàm được xác định trước strtotime () để chuyển đổi chúng thành dấu thời gian UNIX số, sau đó để so sánh các dấu thời gian đó, chúng tôi sử dụng các toán tử so sánh khác nhau để có được kết quả mong muốn.

Trường hợp 3:

So sánh hai ngày bằng cách tạo đối tượng của lớp DateTime.

Ví dụ:

<?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';
   }
?>

Đầu ra:

datetime1 lesser than datetime2

Giải thích:

Trong ví dụ này, chúng tôi đã tạo hai đối tượng DateTime. Để so sánh hai ngày đó, chúng tôi sử dụng các toán tử so sánh khác nhau để có được kết quả mong muốn.