Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amaran PHP: date() menjangkakan parameter 2 panjang, penyelesaian diberikan rentetan

Amaran PHP: date() menjangkakan parameter 2 panjang, penyelesaian diberikan rentetan

PHPz
PHPzasal
2023-06-22 20:03:482047semak imbas

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.

1. Sahkan sama ada jenis parameter yang diluluskan adalah betul

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日

2 Periksa sama ada parameter adalah NULL

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);
//输出:当前时间的年月日格式

3. Semak sama ada parameter ialah Rentetan berangka

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn