Rumah > Artikel > pembangunan bahagian belakang > Amaran PHP: date() menjangkakan parameter 2 panjang, penyelesaian diberikan rentetan
Apabila membangun menggunakan program PHP, anda sering menghadapi beberapa mesej amaran atau ralat. Antaranya, satu mesej ralat yang mungkin muncul ialah: Amaran PHP: date() menjangkakan parameter 2 panjang, rentetan diberikan.
Mesej ralat ini bermaksud: parameter kedua bagi tarikh fungsi() dijangka menjadi integer panjang (panjang), tetapi yang sebenarnya dihantar kepadanya ialah rentetan (rentetan). Jadi, bagaimana kita harus menyelesaikan masalah ini? Di bawah, kami akan memperkenalkan beberapa penyelesaian yang mungkin.
Apabila menggunakan fungsi date(), parameter kedua biasanya digunakan untuk mewakili cap waktu. Cap masa ialah cara untuk mewakili masa dalam bentuk integer, biasanya diperoleh menggunakan fungsi time(). Oleh itu, pertama sekali kita perlu mengesahkan sama ada parameter kedua sememangnya cap waktu integer panjang apabila memanggil fungsi date().
Sebagai contoh, dalam contoh kod berikut, parameter kedua bagi fungsi date() ialah rentetan, jadi mesej ralat di atas akan muncul.
$dateStr = "2022-01-01"; echo date("Y年m月d日",$dateStr); //输出:PHP Warning: date() expects parameter 2 to be long, string given
Jika anda perlu menukar masa dalam bentuk rentetan kepada cap masa, anda boleh menggunakan fungsi strtotime() untuk mencapai ini. Contohnya:
$dateStr = "2022-01-01"; $date = strtotime($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
Jika parameter kedua ialah NULL apabila memanggil fungsi date(), ralat di atas akan berlaku. Oleh itu, apabila menggunakan fungsi date(), anda harus menyemak sama ada parameter kedua ialah NULL, sebagai contoh:
$date = null; echo date("Y年m月d日",$date); //输出:PHP Warning: date() expects parameter 2 to be long, string given
Anda boleh menukar kod di atas kepada:
$date = time(); echo date("Y年m月d日",$date); //输出:当前时间的年月日格式
Apabila menggunakan fungsi date(), jika parameter kedua ialah rentetan jenis integer, mesej ralat di atas juga akan muncul. Oleh itu, apabila menggunakan fungsi date(), anda harus menukar parameter kepada jenis angka, seperti:
$dateStr = "1640995200"; $date = intval($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
atau terus menggunakan operator penukaran jenis untuk penukaran, seperti:
$dateStr = "1640995200"; $date = (int)$dateStr; echo date("Y年m月d日",$date); //输出:2022年01月01日
Secara ringkasnya Seperti yang dinyatakan di atas, apabila mesej ralat PHP Amaran: date() menjangkakan parameter 2 menjadi panjang, rentetan yang diberikan muncul, kita boleh menyelesaikan masalah ini dengan menyemak jenis parameter yang diluluskan, menentukan sama ada parameter itu NULL, atau melakukan penukaran jenis. Apabila ralat ini berlaku, jangan panik, pilih sahaja penyelesaian yang sesuai mengikut situasi tertentu.
Atas ialah kandungan terperinci Amaran PHP: date() menjangkakan parameter 2 panjang, penyelesaian diberikan rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!