Bagaimana cara membandingkan hanya tanggal dengan stempel waktu bilangan bulat di php?

Sebagian besar aplikasi web saat ini mengharuskan Anda bekerja dengan nilai tanggal, baik aplikasi e-niaga maupun aplikasi pemesanan tiket

Tutorial ini akan membantu Anda mempelajari cara membandingkan tanggal dalam PHP

PHP Bandingkan tanggal dalam string

Jika tanggal Anda adalah string dengan format YYYY-MM-DD, maka Anda dapat menggunakan operator pembanding untuk membandingkan nilainya

<?php
// compare dates in PHP

// πŸ‘‡ declare two dates using string format
$date1 = "2020-10-11";
$date2 = "2019-09-15";

// πŸ‘‡ compare if date1 is greater than date2
if ($date1 > $date2) {
    print "$date1 is greater than $date2";
} else {
    print "$date1 is less than $date2";
}

?>

PHP tahu cara membandingkan dua tanggal string di atas, sehingga hasilnya adalah "11-10-2020 lebih besar dari 15-09-2019"

Tetapi metode ini tidak akan berfungsi ketika Anda memiliki tanggal dalam format lain, jadi mari kita lihat cara alternatif untuk membandingkan tanggal dalam PHP selanjutnya.

Bandingkan tanggal PHP menggunakan strtotime()

Fungsi PHP strtotime() mengubah deskripsi waktu dalam bahasa Inggris menjadi stempel waktu Unix

Stempel waktu Unix adalah nilai integer_ yang mewakili nilai waktu tanggal, sehingga Anda dapat membandingkan stempel waktu ini menggunakan operator pembanding

Berikut adalah contoh penggunaan fungsi strtotime() pada tanggal

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
_

Nilai date2_ akan berubah tergantung pada saat Anda menjalankan kode di atas, tetapi hasilnya kemungkinan besar adalah β€œ12 Januari 2019 sudah lewat” (karena artikel ini ditulis pada tahun 2022 πŸ˜‰)

Mengonversi deskripsi waktu menggunakan strtotime() memungkinkan Anda membandingkan tanggal secara akurat menggunakan stempel waktu Unix

Tetapi karena stempel waktu ini sulit dibaca oleh manusia, Anda harus menyimpan tanggal aslinya. Itu sebabnya ada

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
_1 dan
// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
2 variabel dalam contoh di atas

Alternatifnya, Anda juga dapat mengonversi hasilnya kembali ke tanggal yang dapat dibaca menggunakan fungsi

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
3

$date = strtotime("today");

// πŸ‘‡ after comparison is done, format back the timestamp
$date = date("Y-m-d", $date);

print $date; // 2022-09-23

Dan itulah cara Anda menggunakan strtotime() untuk membandingkan tanggal dalam format yang berbeda

Menggunakan objek DateTime untuk membandingkan tanggal

Kelas PHP

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
_5 dapat digunakan untuk membuat objek
// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
5

Seperti fungsi strtotime(), Anda dapat membandingkan

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
5 objek menggunakan operator perbandingan

Perbedaannya adalah Anda perlu menggunakan fungsi

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
_9 untuk memformat objek saat memanggil konstruksi
$date = strtotime("today");

// πŸ‘‡ after comparison is done, format back the timestamp
$date = date("Y-m-d", $date);

print $date; // 2022-09-23
0

Perhatikan contoh berikut

// πŸ‘‡ declare dates
$date1 = "2021/10/12 11:00:00";
$date2 = "2021-10-12 10:00:00";

// πŸ‘‡ convert to DateTime objects
$date1 = new DateTime($date1);
$date2 = new DateTime($date2);

// compare dates
if ($date1 > $date2) {
    print $date1->format("Y-m-d H:i:s") . " is greater";
} else {
    print $date2->format("Y-m-d H:i:s") . " is greater";
}

Saat menggunakan fungsi strtotime(), Anda perlu menggunakan fungsi

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
3 untuk mengubah stempel waktu menjadi format yang dapat dibaca

Tetapi membuat objek

// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
_5 memungkinkan Anda untuk menggunakan fungsi
// πŸ‘‡ declare dates
$date1 = "12 January 2019";
$date2 = "today";

// πŸ‘‡ convert to Unix timestamps
$date1_unix = strtotime($date1);
$date2_unix = strtotime($date2);

// compare dates
if ($date1_unix > $date2_unix) {
    print "$date1 is in the future";
} else {
    print "$date1 is in the past";
}
9 dari objek untuk mengonversi tanggal

Bagaimana cara membandingkan stempel waktu dengan tanggal saat ini di PHP?

Anda dapat membandingkan tanggal PHP dengan tanggal sekarang dengan menggunakan fungsi strtotime() bersama dengan operator perbandingan . Fungsi date_diff() memungkinkan Anda untuk membandingkan dua tanggal dan menemukan perbedaan di antara keduanya.

Bagaimana Anda membandingkan dua tanggal dan waktu?

Untuk membandingkan kedua tanggal, kami telah menggunakan metode compareTo() . Jika kedua tanggal sama, maka kedua tanggal akan dicetak sama. Jika tanggal1 lebih besar dari tanggal2, tanggal 1 akan dicetak setelah Tanggal 2. Jika date1 lebih kecil dari date2, ia akan mencetak Tanggal 1 setelah Tanggal 2.

Bisakah Anda membandingkan tanggal dalam PHP?

Membandingkan dua tanggal di PHP itu sederhana ketika kedua tanggal berada dalam format yang sama tetapi masalah muncul ketika kedua tanggal berada dalam format yang berbeda. Metode 1. Jika tanggal yang diberikan dalam format yang sama maka gunakan operator perbandingan sederhana untuk membandingkan tanggal . echo "$date1 lebih tua dari $date2" ;

Bagaimana Anda membandingkan hanya tanggal bukan waktu dalam momen?

Untuk membandingkan tanggal tanpa membandingkan porsi waktu, kita dapat menyetel kedua tanggal ke tengah malam dengan menggunakan metode setHours yang disertakan dengan objek tanggal JavaScript . Kami memanggil setHours pada date1 untuk mengatur jam, menit, dan detik dari date1 semuanya ke 0. Ini akan mengatur tanggal ke tengah malam.