When developing using PHP programs, you often encounter some warning or error messages. Among them, one error message that may appear is: PHP Warning: date() expects parameter 2 to be long, string given.
This error message means: the second parameter of the function date() is expected to be a long integer (long), but what is actually passed to it is a string (string). So, how should we solve this problem? Below, we will introduce several possible solutions.
When using the date() function, the second parameter is usually used to represent the timestamp. A timestamp is a way of representing time in integer form, usually obtained using the time() function. Therefore, we first need to confirm whether the second parameter is indeed a long integer timestamp when calling the date() function.
For example, in the following code example, the second parameter of the date() function is a string, so the above error message will appear.
$dateStr = "2022-01-01"; echo date("Y年m月d日",$dateStr); //输出:PHP Warning: date() expects parameter 2 to be long, string given
If you need to convert the time in string form into a timestamp, you can use the strtotime() function to achieve this. For example:
$dateStr = "2022-01-01"; $date = strtotime($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
If the second parameter is NULL when calling the date() function, the above error will occur. Therefore, when using the date() function, you should check whether the second parameter is NULL, for example:
$date = null; echo date("Y年m月d日",$date); //输出:PHP Warning: date() expects parameter 2 to be long, string given
You can change the above code to:
$date = time(); echo date("Y年m月d日",$date); //输出:当前时间的年月日格式
When using the date() function, if the second parameter is a string of integer type, the above error message will also appear. Therefore, when using the date() function, you should convert the parameters to numeric types, such as:
$dateStr = "1640995200"; $date = intval($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
Or, directly use the type conversion operator for conversion, such as:
$dateStr = "1640995200"; $date = (int)$dateStr; echo date("Y年m月d日",$date); //输出:2022年01月01日
In summary As mentioned above, when the error message PHP Warning: date() expects parameter 2 to be long, string given appears, we can solve this problem by checking the passed parameter type, determining whether the parameter is NULL, or performing type conversion. When this error occurs, don't panic, just choose the appropriate solution according to the specific situation.
The above is the detailed content of PHP Warning: date() expects parameter 2 to be long, string given solution. For more information, please follow other related articles on the PHP Chinese website!