PHP so sánh DateTime lớn hơn

Các giá trị ngày bắt buộc phải được so sánh trong PHP cho các mục đích khác nhau, chẳng hạn như tính toán thời hạn của một tác vụ và lên lịch cho một sự kiện. Việc so sánh hai ngày có định dạng tương tự sẽ dễ dàng hơn. Nếu cần so sánh ngày của các định dạng khác nhau, thì các giá trị ngày sẽ được yêu cầu chuyển đổi thành cùng một định dạng bằng cách sử dụng các hàm PHP tích hợp khác trước khi so sánh. Các cách khác nhau để so sánh giá trị ngày tháng trong PHP đã được trình bày trong hướng dẫn này

So sánh các ngày có định dạng tương tự

Các giá trị ngày được lưu trữ dưới dạng chuỗi trong PHP ở định dạng “yyyy-mm-dd”. Nếu giá trị ngày này không được chỉ định ở định dạng này, thì đầu ra sai sẽ được tạo. Cách so sánh hai ngày có định dạng giống nhau đã được trình bày trong hướng dẫn này

ví dụ 1. So sánh các giá trị ngày tháng bằng cách sử dụng câu lệnh có điều kiện

Tạo một tệp PHP với tập lệnh sau sẽ đọc hai giá trị ngày ở định dạng PHP từ các tham số URL. Sau đó in thông báo sau khi so sánh các giá trị ngày tháng bằng câu lệnh điều kiện và toán tử so sánh



// Kiểm tra xem các giá trị ngày có được chuyển vào tham số URL hay không
if(isset($_GET['D1']) and isset($_GET['D2']))

{

    //Đặt giá trị ngày đầu tiên dưới dạng chuỗi
    $dateVal1 = $_GET['D1'];

    //Đặt giá trị ngày thứ hai dưới dạng chuỗi
    $dateVal2 = $_GET['D2'];

    //Kiểm tra xem các giá trị có rỗng hay không
    if ($dateVal1 . = ""$dateVal2 . = "")
    {

        //So sánh ngày tháng bằng toán tử so sánh
          if ($dateVal1 < $dateVal2)

              echo " $dateVal1 nhỏ hơn $dateVal2.";

        khác

              echo " $dateVal1 lớn hơn $dateVal2.";
    }

    khác
        //In thông báo lỗi
        echo "Một hoặc hai giá trị ngày trống. ";
}
khác
    //In thông báo lỗi
    echo "Thiếu một hoặc nhiều giá trị ngày. ";

?>

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trước đó nếu không có giá trị ngày nào được chuyển dưới dạng tham số URL

PHP so sánh DateTime lớn hơn

Sau khi thực thi tập lệnh trước, đầu ra sau sẽ xuất hiện nếu “2022-09-21 và 2022-01-22” được chuyển vào tham số URL

PHP so sánh DateTime lớn hơn
Sau khi thực thi tập lệnh trước, đầu ra sau sẽ xuất hiện nếu 2022-09-21 và 2022-11-22” được chuyển vào tham số URL

PHP so sánh DateTime lớn hơn

ví dụ 2. So sánh các giá trị ngày bằng cách sử dụng toán tử bậc ba

Tạo một tệp PHP với tập lệnh sau sẽ đọc hai giá trị ngày ở định dạng PHP từ các tham số URL. Sau đó in thông báo sau khi so sánh các giá trị ngày bằng toán tử bậc ba



    //Kiểm tra xem các giá trị ngày có được chuyển vào tham số URL hay không
    if(isset($_GET['D1']) and isset($_GET['D2']))
    {
      //Đặt giá trị ngày đầu tiên dưới dạng chuỗi
        $dateVal1 = $_GET['D1'];

      //Đặt giá trị ngày thứ hai dưới dạng chuỗi
        $dateVal2 = $_GET['D2'];

    //Kiểm tra xem các giá trị có trống hay không
    if ($dateVal1 . = ""$dateVal2 . = "")

        //So sánh các giá trị ngày
        echo $dateVal1 < $dateVal2 ? "$dateVal1 is less than $dateVal2." . " $dateVal1 lớn hơn $dateVal2.";

    khác

        //In thông báo lỗi
        echo "Một hoặc hai giá trị ngày trống. ";

}
khác
    //In thông báo lỗi
    echo "Thiếu một hoặc nhiều giá trị ngày. ";
?>

Sau khi thực thi tập lệnh trước, đầu ra sau sẽ xuất hiện nếu “2022-08-25 và 2022-11-22” được chuyển vào tham số URL

PHP so sánh DateTime lớn hơn

So sánh các đối tượng ngày có định dạng tương tự hoặc khác nhau

Cách so sánh các đối tượng ngày tháng có định dạng giống hoặc khác nhau đã được trình bày trong phần hướng dẫn này

ví dụ 3. So sánh các đối tượng ngày có định dạng tương tự

Tạo tệp PHP với tập lệnh sau để tạo hai đối tượng ngày có định dạng tương tự bằng cách sử dụng lớp DateTime. Tiếp theo, câu lệnh điều kiện được dùng để so sánh ngày tháng



// Gán đối tượng ngày đầu tiên
$dateVal1 = new DateTime ("21 May 2022");

// Gán đối tượng ngày thứ hai
$dateVal2 = mới Ngày giờ ("16 Dec 2022");

// So sánh các giá trị ngày bằng cách sử dụng toán tử so sánh
if($dateVal1 > $dateVal2)

    echo date_format($dateVal1,"d-M-Y"), " is greater than ", date_format($dateVal2,"d-M-Y"),".";

khác

    echo date_format($dateVal1,"d-M-Y"), " is less than ", date_format($dateVal2,"d-M-Y"),".";

?>

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trước đó

PHP so sánh DateTime lớn hơn

Ví dụ 4. So sánh các đối tượng ngày có định dạng khác nhau

Tạo tệp PHP với tập lệnh sau để tạo hai đối tượng ngày có định dạng khác nhau bằng cách sử dụng lớp DateTime. Tiếp theo, câu lệnh điều kiện đã được dùng để so sánh ngày tháng



// Kiểm tra ngày sự kiện đã được đặt hay chưa
if(isset($_GET['ed']))
{
    if($_GET['ed'] != "" )
    {
        //Đọc ngày hiện tại
          $today = new DateTime ();

        //Đọc ngày diễn ra sự kiện từ tham số URL
        $eventDate = new DateTime ($_GET['ed']);

        //Tính toán sự khác biệt giữa các ngày
          $difference = $today->diff($eventDate);

        /*
Một số dương sẽ được trả về
nếu ngày sự kiện lớn hơn ngày hiện tại
*/

          if ($difference->format("%r%a") > 0 )

            echo "Sự kiện sắp diễn ra trong " , . "->days, " days.";

        khác

            echo "Sự kiện được tổ chức trước ", . "->days, " days.";
        }

    khác

        //In thông báo lỗi
        echo "Ngày sự kiện trống. ";

}
khác
    //In thông báo lỗi
    echo "Thiếu ngày sự kiện. ";

?>

Sau khi thực thi tập lệnh trước đó, đầu ra sau sẽ xuất hiện nếu không có giá trị ngày nào được chuyển dưới dạng tham số URL

PHP so sánh DateTime lớn hơn
Sau khi thực thi tập lệnh trước đó, đầu ra sau sẽ xuất hiện nếu “2022-10-15” được chuyển vào tham số URL

PHP so sánh DateTime lớn hơn

Sau khi thực thi tập lệnh trước đó, đầu ra sau sẽ xuất hiện nếu “2022-01-15” được chuyển vào tham số URL

PHP so sánh DateTime lớn hơn

Ví dụ 5. So sánh các đối tượng ngày có định dạng khác nhau bằng cách sử dụng hàm date_create()

Tạo tệp PHP với tập lệnh sau để tạo hai đối tượng ngày có định dạng khác nhau bằng cách sử dụng hàm date_create(). Tiếp theo, câu lệnh điều kiện đã được dùng để so sánh ngày tháng



 

// Gán ngày đầu tiên bằng hàm date_create()
$dateVal1 = date_create("30-10);

// Gán ngày thứ hai bằng hàm date_create()
$dateVal2 = date_create("16 tháng 12 năm 2022);

//So sánh các giá trị ngày có định dạng khác nhau
if($dateVal1 > $dateVal2)

    echo $dateVal1->định dạng("d M Y"), " is greater than ", $dateVal2->format("d M Y"), "." ;

khác

    echo $dateVal1->định dạng("d M Y"), " is less than ", $dateVal2->format("d M Y"), "." ;

?>

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trước đó

PHP so sánh DateTime lớn hơn

So sánh giá trị ngày dựa trên giá trị dấu thời gian

Cách so sánh giá trị ngày dựa trên giá trị dấu thời gian đã được hiển thị trong ví dụ sau

Ví dụ 6. So sánh ngày bằng cách sử dụng hàm strtotime()

Tạo tệp PHP với tập lệnh sau sẽ so sánh hai giá trị ngày bằng cách chuyển đổi ngày thành giá trị dấu thời gian



//Xác định hai giá trị ngày của chuỗi
$dateVal1 = "2022-01-01";
$dateVal2 = "2022-06-30";

//So sánh giá trị dấu thời gian của ngày tháng
if (strtotime($dateVal1) < strtotime($dateVal2))

    echo " $dateVal1 nhỏ hơn $dateVal2.";

khác

    echo " $dateVal1 lớn hơn $dateVal2.";

?>

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trước đó

PHP so sánh DateTime lớn hơn

Phần kết luận

Các cách khác nhau để so sánh hai giá trị ngày có định dạng giống hoặc khác nhau đã được trình bày trong hướng dẫn này. Người dùng PHP có thể làm theo bất kỳ phương pháp nào để so sánh các giá trị ngày dựa trên yêu cầu của họ

Làm cách nào để kiểm tra xem một ngày có lớn hơn một ngày khác trong PHP không?

Làm cách nào để so sánh hai đối tượng DateTime trong PHP?

Để so sánh hai ngày đó, chúng ta sử dụng phương thức diff() của đối tượng DateTime đầu tiên với đối tượng DateTime thứ hai làm đối số . Phương thức diff() sẽ trả về một đối tượng mới có kiểu DateInterval.

Làm cách nào để so sánh hai ngày lớn hơn trong PHP?

So sánh hai ngày trong PHP rất đơn giản khi cả hai ngày đều có cùng định dạng nhưng vấn đề phát sinh khi cả hai ngày có định dạng khác nhau. Phương pháp 1. Nếu các ngày đã cho có cùng định dạng thì hãy sử dụng toán tử so sánh đơn giản để so sánh các ngày . echo "$date1 cũ hơn $date2" ;

Làm cách nào để kiểm tra xem thời gian lớn hơn hay nhỏ hơn một thời gian cụ thể trong PHP?

Để so sánh thời gian đã cho với thời gian hiện tại. if (strtotime($given_time) >= time()+300) echo "Bạn đang trực tuyến"; . Trong trường hợp này, 5 phút nhân 60 giây.