Home  >  Article  >  Backend Development  >  PHP Warning: date() expects parameter 2 to be long, string given solution

PHP Warning: date() expects parameter 2 to be long, string given solution

PHPz
PHPzOriginal
2023-06-22 20:03:482051browse

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.

1. Confirm whether the passed parameter type is correct

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日

2. Check whether the parameter is NULL

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

3. Check whether the parameter is Numerical string

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn