Cara Membandingkan Tanggal di PHP
Cara Membandingkan Tanggal di PHP – Membandingkan tanggal menjadi penting saat Anda membuat plugin atau situs web pemesanan dan penjadwalan acara di PHP. Ini memiliki banyak kegunaan lain juga, tergantung pada bagaimana Anda mengimplementasikan sesuatu. Misalnya, kami mungkin menggunakannya untuk membuat acara promosi yang sensitif terhadap waktu dalam skrip PHP kami.
PHP hadir dengan fungsi dan metode khusus yang dapat Anda gunakan untuk membandingkan tanggal saat menulis kode gaya prosedural atau berorientasi objek. Dalam tutorial ini, kita akan membahas keduanya.
Cara Membandingkan Tanggal di PHP (Object Oriented Style)
Ada kelas DateTime di PHP yang dapat Anda gunakan untuk membuat objek DateTime. Anda dapat memberikan string tanggal/waktu yang valid bersama dengan argumen zona waktu opsional untuk membuat objek DateTime. Berikut adalah beberapa contoh:
<?php $past = new DateTime("18 May 2021"); $now = new DateTime("now"); $dist_past = new DateTime("2002-09-21 18:15:00"); $dist_future = new DateTime("12-09-2036"); ?>
Anda dapat menggunakan operator perbandingan sederhana pada objek DateTime ini untuk membandingkan tanggal sekarang dan memeriksa apakah nilai yang dikembalikan true atau false.
<?php $past = new DateTime("18 May 2021"); $now = new DateTime("now"); $dist_past = new DateTime("2002-09-21 18:15:00"); $dist_future = new DateTime("12-09-2036"); if($past < $now) { echo 'The first date is in the past.'; } // Output: The first date is in the past. if($past > $dist_past) { echo 'The third date is in the distant past.'; } // Output: The third date is in the distant past. if($dist_future > $now) { echo 'The fourth date is in the future.'; } // Output: The fourth date is in the future. ?>
Perbedaan Tanggal di php (Object-Oriented Style)
Terkadang, Anda mungkin ingin mendapatkan lebih banyak informasi saat membandingkan tanggal. Ada metode dan fungsi khusus dalam PHP untuk menghitung perbedaan antara tanggal.
Setelah Anda membuat objek DateTime, Anda juga dapat memanggil metode diff() pada satu objek dan meneruskannya pada tanggal lain untuk menghitung perbedaan antara tanggal. Ini akan memberi Anda kembali objek DateInterval.
Ingatlah bahwa tanggal saat Anda memanggil diff() akan dikurangi dari tanggal yang diteruskan ke metode ini. Anda dapat memformat perbedaan dengan cara apa pun yang Anda suka setelah itu dengan menggunakan metode format(). Berikut beberapa contohnya:
<?php $last = new DateTime("25 Dec 2020"); $now = new DateTime("now"); $next = new DateTime("25 Dec 2021"); $days_last = $last->diff($now); $days_next = $now->diff($next); echo $days_last->format('%a days').' since last Christmas.'; // Output: 170 days since last Christmas. echo $days_next->format('%a days').' to next Christmas.'; // Output: 194 days to next Christmas. ?>
Anda dapat meneruskan banyak parameter ke metode format() untuk mengontrol bagaimana PHP menghasilkan perbedaan. Dalam contoh kami, kami menggunakan %r untuk menentukan relativitas perbedaan. Nilai positif berarti tanggal yang diteruskan ke diff() berada di masa mendatang dibandingkan dengan tanggal yang memanggilnya. Nilai negatif berarti tanggal yang diteruskan ke diff() sudah lewat dibandingkan dengan tanggal yang memanggilnya. String %a digunakan untuk menunjukkan jumlah hari dan jam. Anda juga dapat menggunakan string lain seperti %H, %I, dan %S untuk masing-masing menunjukkan jam, menit, dan detik. Semua karakter format ini dapat ditemukan dalam dokumentasi untuk metode format().
Membandingkan Tanggal di PHP (Procedural Style)
Anda dapat menggunakan serangkaian fungsi yang berbeda jika Anda lebih suka menulis kode gaya prosedural. Dalam hal ini, kita dapat menggunakan fungsi date_create() untuk membuat objek DateTime kita dari string yang diteruskan. Variabel yang Anda tetapkan akan tetap menyimpan objek DateTime, tetapi mereka tidak akan dipakai secara eksplisit oleh Anda.
Karena kita masih berurusan dengan objek DateTime, operator perbandingan reguler akan tetap mengizinkan kita untuk membandingkan tanggal ini.
<?php $past = date_create("18 May 2021"); $now = date_create("now"); $dist_past = date_create("2002-09-21 18:15:00"); $dist_future = date_create("12-09-2036"); if($past < $now) { echo 'The first date is in the past.'; } // Output: The first date is in the past. if($past > $dist_past) { echo 'The third date is in the distant past.'; } // Output: The third date is in the distant past. if($dist_future > $now) { echo 'The fourth date is in the future.'; } // Output: The fourth date is in the future. ?>
Perbedaan Tanggal di PHP (Procedural Style)
Sama seperti metode diff() dari kelas DateTime, ada fungsi date_create() terkait yang dapat Anda gunakan untuk menghitung perbedaan antara dua tanggal. Ia menerima dua parameter, dan tanggal yang disediakan di parameter pertama dikurangi dari tanggal di parameter kedua.
Berikut adalah contoh untuk menghitung jumlah hari sejak Natal lalu dan jumlah hari hingga Natal berikutnya.
<?php $last = date_create("25 Dec 2020"); $now = date_create("now"); $next = date_create("25 Dec 2021"); $days_last = date_diff($last, $now); $days_next = date_diff($now, $next); echo date_interval_format($days_last, '%a days').' since last Christmas.'; // Output: 170 days since last Christmas. echo date_interval_format($days_next, '%a days').' to next Christmas.'; // Output: 194 days to next Christmas. ?>
Kami ingin mempertahankan jumlah hari yang dikembalikan positif dalam kedua kasus, sehingga waktu yang datang kemudian dilewatkan sebagai parameter kedua.
PHP hadir dengan metode dan fungsi praktis untuk membandingkan dua tanggal, tergantung pada gaya pengkodean Anda. Anda bisa mendapatkan informasi lebih lanjut seperti perbedaan waktu yang tepat antara dua tanggal menggunakan metode diff() dan fungsi date_diff() di PHP. Saya telah mencoba membahas dasar-dasar membandingkan tanggal dalam PHP dalam tutorial ini. Anda harus mempertimbangkan untuk membaca dokumentasi untuk mempelajari cara memformat perbedaan tanggal dengan cara yang lebih maju. sumber