다른 사람이 이전에 작업 한 일부 코드에 문제가 있습니다.
목표는 디렉토리를 반복하고 특정 날짜 범위 내에있는 모든 파일을 배열로 푸시하는 것입니다 (파일은 mmddyyy.txt 형식 임).
코드의 변수 (내가하는 것이 아니라 엄청나게 이름이 지정됨)는 다음을 나타냅니다.
$ isGood-파일이 어레이에 추가됩니다.
$isGood = false;
if($aYear >= $sYear1 && $aYear <= $sYear2)
{
if($aYear == $sYear1)
{
if($aMonth == $sMonth1)
{
if($aDay >= $sDay1 && $aDay <= $sDay2)
{
$isGood = true;
}
}
else
{
if($aMonth >= $sMonth1 && $aMonth <= $sMonth2)
{
$isGood = true;
}
}
}
else if($aYear == $sYear2)
{
if($aMonth == $sMonth2)
{
if($aDay <= $sDay2)
{
$isGood = true;
}
}
else
{
if($aMonth <= $sMonth2)
{
$isGood = true;
}
}
}
else
{
$isGood = true;
}
}
if($isGood)
{
//echo "Found good article";
$a = $a . "===" . $file;
array_push($result, $a);
}
예상 한 결과를 얻지 못합니다. 이 코드를 단순화하고 제대로 작동하는 방법에 대한 도움을 찾고 있습니다. 이 솔루션을 PHP로 유지해야합니다.
미리 감사드립니다.
@Sandeep이 지적했듯이 문제는 다음과 같습니다.
if ($aMonth >= $sMonth1 && $aMonth <= $sMonth2)
과
if ($aDay >= $sDay1 && $aDay <= $sDay2)
날짜를 종료 날짜와 비교할 필요가 없기 때문입니다.
즉, 다음과 같은 작업을 수행하여 코드를 완전히 정리할 수 있습니다.
$date = (new DateTime)->setDate($aYear, $aMonth, $aDay);
$start = (new DateTime)->setDate($sYear1, $sMonth1, $sDay1);
$end = (new DateTime)->setDate($sYear2, $sMonth2, $sDay2);
if ($start <= $date && $date <= $end) {
//echo "Found good article";
$a = $a . "===" . $file;
array_push($result, $a);
}
도움이 되었기를 바랍니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다