Rumah > Artikel > pembangunan bahagian belakang > Mengapa kod PHP saya tidak menyemak dengan betul jika tarikh jatuh di antara dua tarikh lain?
PHP - Menyemak sama ada Satu Tarikh Jatuh Antara Dua Tarikh Lain
Soalan:
A coretan kod yang diambil daripada Stack Overflow telah diubah suai untuk menyemak sama ada tarikh hari ini berada dalam julat tertentu. Walau bagaimanapun, kod yang diubah suai tidak berfungsi seperti yang dimaksudkan.
$paymentDate = date('d/m/Y'); $contractDateBegin = date('d/m/Y', '01/01/2001'); $contractDateEnd = date('d/m/Y', '01/01/2015'); if ($paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd) { echo "is between"; } else { echo "NO GO!"; }
Jawapan:
Untuk menyelesaikan isu tersebut, fungsi PHP strtotime() harus digunakan untuk menukar tarikh kepada format cap masa. Ini memastikan tarikh dibandingkan dengan betul berdasarkan nilainya sebagai cap masa.
$paymentDate = date('Y-m-d'); $paymentDate = date('Y-m-d', strtotime($paymentDate)); $contractDateBegin = date('Y-m-d', strtotime("01/01/2001")); $contractDateEnd = date('Y-m-d', strtotime("01/01/2012")); if (($paymentDate >= $contractDateBegin) && ($paymentDate <= $contractDateEnd)) { echo "is between"; } else { echo "NO GO!"; }
Nota:
Untuk memastikan tarikh hari ini disertakan dalam perbandingan, gunakan > ;= dan <= bukannya > dan <.
Atas ialah kandungan terperinci Mengapa kod PHP saya tidak menyemak dengan betul jika tarikh jatuh di antara dua tarikh lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!