CodeSOD: 날짜 차단
제공된 PHP 코드 스니펫은 잘못된 날짜 처리를 보여줍니다. 러시아어 월 이름 배열을 정의하는 것으로 시작합니다. 그런 다음 코드는 게시물을 처리하는 루프에 들어가지만, 게시물을 두 번 중복해서 확인합니다. 주요 문제는 날짜가 구문 분석되고 표시되는 방식에 있습니다.날짜는 문자열로 검색되어 점을 사용하여 부분으로 분할됩니다. 코드는 두 번째 날짜 부분의 숫자를 검사하여 월 번호를 추출하려고 시도합니다. 월의 첫 번째 숫자가 '0'인지 확인하고, 그렇다면 두 번째 숫자를 가져오고, 그렇지 않으면 첫 번째 숫자를 가져옵니다. 이렇게 추출된 단일 숫자는 월 배열의 인덱스로 사용됩니다.그러나 이 로직은 월 인덱스에 대해 단일 문자만 추출하기 때문에 잘못되었습니다. 연말의 월의 경우 종종 인덱스가 '1'이 되어 실제 월에 관계없이 "January"가 잘못 표시됩니다. 저자는 이를 잔인하다고 강조하며 코드의 지역 설정 특정성을 지적합니다.이 글은 내장 PHP 날짜 함수를 사용하는 것이 간단한 해결책이 될 것이라고 제안합니다. PHP의 유연한 구문은 'if :' 및 'endif'와 같은 대안적인 블록 표기법을 허용하여 코드베이스 내에서 스타일이 혼합되어 혼란을 야기할 수 있다는 점에 대한 부수적인 관찰이 이루어집니다. 저자는 또한 다른 프로그래밍 패러다임을 혼합할 가능성도 언급합니다.