Mengesahkan Tarikh Hujung Minggu dalam PHP
Semasa cuba menentukan sama ada tarikh tertentu jatuh pada hujung minggu, anda telah perasan bahawa fungsi sedia ada anda secara konsisten mengembalikan 'palsu.' Mari kita teliti kod anda dan fahami sebab di sebalik tingkah laku yang kelihatan salah ini.
Cabarannya terletak pada cara anda menghuraikan tarikh. Kod anda menggunakan fungsi date() untuk mengekstrak hari dalam seminggu sebagai rentetan (mis., "Sabtu" atau "Ahad"), dan kemudian membandingkannya dengan rentetan tepat tersebut. Pendekatan ini boleh menimbulkan masalah kerana sensitiviti kes dan kemungkinan kesilapan menaip.
Pendekatan Yang Diperbaiki:
Sebaliknya, anda boleh memanfaatkan fungsi tarikh terbina dalam PHP untuk memudahkan ini tugasan. Berikut ialah beberapa penyelesaian yang disyorkan:
Untuk PHP 5.1 dan kemudian:
function isWeekend($date) { return (date('N', strtotime($date)) >= 6); }
Fungsi ini menggunakan fungsi date('N') untuk mendapatkan semula hari minggu ini sebagai integer (1-7), di mana 6 dan 7 mewakili hari Sabtu dan Ahad, masing-masing. Dengan membandingkan keputusan kepada 6, anda boleh menentukan dengan tepat sama ada tarikh itu jatuh pada hujung minggu.
Untuk versi PHP yang lebih awal:
function isWeekend($date) { $weekDay = date('w', strtotime($date)); return ($weekDay == 0 || $weekDay == 6); }
Untuk versi PHP sebelum ini hingga 5.1, anda masih boleh mendapatkan hari dalam minggu sebagai integer menggunakan date('w'). Dalam kes ini, anda perlu menyemak Ahad (0) dan Sabtu (6) sebagai hari hujung minggu.
Atas ialah kandungan terperinci Mengapa Semakan Tarikh Hujung Minggu PHP Saya Sentiasa Kembali Palsu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!