두 날짜 사이의 기간을 정밀하게 결정
다음 시나리오를 고려해 보세요. 두 날짜가 변수로 저장되어 있고 숫자를 계산해야 합니다. 그들 사이의 개월. PHP를 사용하여 이 작업을 어떻게 우아하게 수행할 수 있습니까?
날짜 함수 활용
PHP 버전 5.3 이상에서는 DateTime 클래스를 제공하여 시차를 정확하게 계산할 수 있습니다. 제공된 날짜를 사용하여 두 개의 DateTime 객체를 인스턴스화하고 diff() 메서드를 사용하여 DateInterval 객체를 얻습니다.
<code class="php">$d1 = new DateTime("2009-09-01"); $d2 = new DateTime("2010-05-01"); var_dump($d1->diff($d2)->m); // int(4) var_dump($d1->diff($d2)->m + ($d1->diff($d2)->y*12)); // int(8)</code>
이전 PHP 버전에 대한 대체 접근 방식
PHP의 경우 5.3 이전 버전에서는 Unix 타임스탬프를 활용할 수 있습니다. strtotime()을 사용하여 날짜를 타임스탬프로 변환하고 절대 차이를 계산한 다음 이를 하루의 초 수와 한 달의 평균 일 수로 나눕니다.
<code class="php">$d1 = "2009-09-01"; $d2 = "2010-05-01"; echo (int)abs((strtotime($d1) - strtotime($d2))/(60*60*24*30)); // 8</code>
데이터베이스 고려 사항
데이터베이스에서 파생된 날짜의 경우 데이터베이스에 내장된 시차 계산 기능을 활용하는 것이 좋습니다.
정확한 월 계산
정밀도가 중요하고 DateTime::diff나 데이터베이스 기능을 모두 사용할 수 없는 상황에서는 루프 기반 접근 방식을 채택하여 최대 날짜를 초과할 때까지 최소 날짜가 한 달 앞으로 갈수록 카운터를 늘릴 수 있습니다.
<code class="php">$d1 = strtotime("2009-09-01"); $d2 = strtotime("2010-05-01"); $min_date = min($d1, $d2); $max_date = max($d1, $d2); $i = 0; while (($min_date = strtotime("+1 MONTH", $min_date)) <= $max_date) { $i++; } echo $i; // 8</code>
위 내용은 PHP에서 두 날짜 사이의 개월 수를 정확하게 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!