PHP에서는 날짜를 다음 형식으로 변환하려고 시도하는 코드를 제공했습니다. dd/mm/yyyy를 YYYY-MM-DD 형식으로 바꿉니다. 그러나 변환 시 예기치 않은 값인 1970-01-01이 반환되는 문제가 발생했습니다.
문제는 PHP strtotime( ) 기능. dd/mm/yyyy 형식의 날짜를 구문 분석할 때 strtotime()은 처음 두 자리가 월(mm)을 나타내고 다음 두 자리가 일(dd)을 나타내는 것으로 가정합니다. 예를 들어 2000년 2월 20일은 2000년 2월 20일로 해석됩니다.
그러나 귀하의 경우 URL의 날짜는 일/월/년 형식(dd/mm/yyyy)입니다. . 즉, 처음 두 자리는 일을 나타내고 다음 두 자리는 월을 나타냅니다. 결과적으로 strtotime()은 날짜를 잘못 해석하여 잘못된 값을 반환합니다.
이 문제를 해결하려면 DateTime::을 사용하는 것이 좋습니다. strtotime() 대신 createFromFormat() 메서드를 사용하세요. 이 방법을 사용하면 날짜 문자열의 정확한 형식을 지정하여 올바르게 구문 분석되도록 할 수 있습니다. 업데이트된 코드 버전은 다음과 같습니다.
<code class="php">$date = $date1 = DateTime::createFromFormat('d/m/Y', '20/02/2000'); $D->query = $date->format('Y-m-d'); // 2000-02-20</code>
DateTime::createFromFormat()을 사용하면 URL의 날짜를 YYYY-MM-DD 형식으로 정확하게 변환할 수 있습니다.
향후 유사한 문제를 방지하려면 URL의 날짜 형식을 올바르게 지정하는 것이 중요합니다. dd/mm/yyyy 형식으로 날짜를 전달하는 경우 처음 두 자리는 일을 나타내고 다음 두 자리는 월을 나타내는지 확인하십시오. 또는 YYYY-MM-DD와 같이 보다 표준화된 형식을 사용하는 것이 좋습니다.
위 내용은 URL에서 dd/mm/yyyy 날짜를 변환할 때 내 PHP 코드가 1970-01-01을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!