PHP - membandingkan tanggal yang dimasukkan pengguna dengan tanggal php()?

Saya mencoba merancang beberapa fungsi di Wordpress di mana pengguna dapat membuat "acara" dengan tanggal yang mereka masukkan, yang dalam format "MM/DD/YYYY". Saya ingin acara diarsipkan jika tanggal yang dimasukkan setelah tanggal sekarang, jadi saya telah melakukan sesuatu seperti...

$date = get_post_meta( get_the_ID(), 'Date', true );
$todaysDate = date('n\/d\/Y');

if( $date < $todaysDate) {
    // do stuff
}

Jelas sekali, ini bukan cara yang tepat untuk melakukan hal ini, tetapi saya tidak begitu yakin cara terbaik untuk menangani tanggal yang dimasukkan ini. Cara saya menyiapkannya saat ini sebenarnya cukup berhasil, tetapi bulan Oktober (10), November (11), dan Desember (12) memberikan pengaruh yang besar dalam perbandingannya. Apa cara yang lebih baik dan benar untuk melakukan hal ini?


person la1ch3    schedule 21.05.2015    source sumber


Jawaban (2)


Gunakan strtotime() untuk menguraikan deskripsi tanggal waktu teks bahasa Inggris apa pun ke dalam stempel waktu Unix. lalu lakukan perbandingannya.

if (strtotime($date) < strtotime($todaysDate))
{
    // Do more stuff
person Vahid Hallaji    schedule 21.05.2015

Saat membandingkan tanggal secara harfiah, formatnya harus sama. Berikut adalah contoh cara mengubah tanggal dari bidang meta ke format 'Y-m-d':

$date = date( 'Y-m-d', strtotime( get_post_meta( get_the_ID(), 'Date', true ) ) );
$today = date( 'Y-m-d' );

if ( $date < $today ) {
    var_dump( $date, $today );
}

Hal ini dapat dilakukan dengan lebih mudah jika tanggal tekstual dikonversi ke stempel waktu Unix dengan strtotime():

if (  strtotime( get_post_meta( get_the_ID(), 'Date', true ) ) < strtotime( date( 'Y-m-d' ) ) ) {
    echo 'do stuff';
}
person Danijel    schedule 21.05.2015