PHP 프로그램을 사용하여 개발할 때 경고나 오류 메시지가 자주 표시됩니다. 그중 나타날 수 있는 오류 메시지는 다음과 같습니다. PHP 경고: date()에서는 매개변수 2가 길어야 하며 문자열이 제공되어야 합니다.
이 오류 메시지는 date() 함수의 두 번째 매개변수가 긴 정수(long)일 것으로 예상되지만 실제로 전달되는 것은 문자열(string)임을 의미합니다. 그렇다면 이 문제를 어떻게 해결해야 할까요? 아래에서는 몇 가지 가능한 솔루션을 소개합니다.
date() 함수를 사용할 때 일반적으로 두 번째 매개변수는 타임스탬프를 나타내는 데 사용됩니다. 타임스탬프는 시간을 정수 형식으로 표현하는 방법으로, 일반적으로 time() 함수를 사용하여 얻습니다. 따라서 date() 함수를 호출할 때 두 번째 매개변수가 실제로 긴 정수 타임스탬프인지 먼저 확인해야 합니다.
예를 들어 다음 코드 예시에서는 date() 함수의 두 번째 매개변수가 문자열이므로 위와 같은 오류 메시지가 나타납니다.
$dateStr = "2022-01-01"; echo date("Y年m月d日",$dateStr); //输出:PHP Warning: date() expects parameter 2 to be long, string given
문자열 형식의 시간을 타임스탬프로 변환해야 하는 경우 strtotime() 함수를 사용하여 이를 달성할 수 있습니다. 예:
$dateStr = "2022-01-01"; $date = strtotime($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
date() 함수 호출 시 두 번째 매개변수가 NULL이면 위와 같은 오류가 발생합니다. 따라서 date() 함수를 사용할 때는 두 번째 매개변수가 NULL인지 확인해야 합니다. 예:
$date = null; echo date("Y年m月d日",$date); //输出:PHP Warning: date() expects parameter 2 to be long, string given
위 코드를 다음과 같이 변경할 수 있습니다.
$date = time(); echo date("Y年m月d日",$date); //输出:当前时间的年月日格式
date() 함수를 사용하면 두 번째 매개변수가 정수형 문자열인 경우에도 위와 같은 오류 메시지가 나타납니다. 따라서 date() 함수를 사용할 때는 매개변수를 다음과 같은 숫자 유형으로 변환해야 합니다.
$dateStr = "1640995200"; $date = intval($dateStr); echo date("Y年m月d日",$date); //输出:2022年01月01日
또는 변환을 위해 유형 변환 연산자를 직접 사용합니다. 예:
$dateStr = "1640995200"; $date = (int)$dateStr; echo date("Y年m月d日",$date); //输出:2022年01月01日
요약하면 PHP 경고: 날짜 presents()는 매개변수 2가 길 것으로 예상하고 오류 메시지가 주어지면 문자열입니다. 전달된 매개변수 유형을 확인하고 매개변수가 NULL인지 또는 유형 변환을 수행하여 이 문제를 해결할 수 있습니다. 이 오류가 발생하면 당황하지 말고 특정 상황에 따라 적절한 솔루션을 선택하십시오.
위 내용은 PHP 경고: date()에서는 매개변수 2가 길어질 것으로 예상하며 문자열은 솔루션을 제공합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!