PHP를 사용하여 두 날짜의 차이를 계산하는 방법

Ralfh Bryan Perez 2023년1월30일
  1. strtotime()을 사용하여 5.3 이하의 PHP 버전에서 두 날짜의 차이를 계산
  2. DateTime()DateInterval() 사용 PHP 5.3 이상의 객체
PHP를 사용하여 두 날짜의 차이를 계산하는 방법

PHP를 사용하여 두 날짜의 차이를 계산하는 방법에는 여러 가지가 있습니다. 이 기사에서는 PHP 버전 <5.3 및 최신 버전 (> 5.3)에 대해 최신의보다 안정적인 방법을 사용하여 날짜 차이를 계산하는 방법을 보여줍니다.

strtotime()을 사용하여 5.3 이하의 PHP 버전에서 두 날짜의 차이를 계산

strtotime()는 두 날짜를 UNIX 시간으로 변환하고 그로부터 초 수를 계산합니다. 이것으로부터 초를 사용하여 다른 방법을 계산하는 것이 더 쉽습니다. 이 함수는 날짜-시간의 설명을 보여주는 영어로 된 문자열 매개 변수를 허용합니다.

예:

$firstDate = "2019-01-01";
$secondDate = "2020-03-04";

$dateDifference = abs(strtotime($secondDate) - strtotime($firstDate));

$years  = floor($dateDifference / (365 * 60 * 60 * 24));
$months = floor(($dateDifference - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
$days   = floor(($dateDifference - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 *24) / (60 * 60 * 24));

echo $years." year,  ".$months." months and ".$days." days";

//output: 1 year, 2 months and 3 days

위의 예제는abs(),floor()및 주로strtotime()과 같은 여러 함수를 사용하여 두 날짜의 차이를 얻습니다.

strtotime()은 날짜의 UNIX 초 값을 가져오고abs()를 사용하여 첫 번째 날짜의 절대 값을 갖습니다.

함수 floor()는 초를 가장 가까운 정수로 내림하는 데 사용됩니다.

연도를 얻으려면 365 일에 60 분, 60 초 및 24 시간을 곱한 다음 차이로 나눕니다.

월을 구하려면 30 일에서 60 분, 60 초 및 24 시간을 곱하고 연도와 365 일, 60 분, 60 초 및 24 시간으로 곱한 날짜 차이로 나누십시오.

그런 다음 날짜 차이를 얻으려면 60 분, 60 초 및 24 시간을 곱한 다음 날짜 차이, 연도, 365 일, 60 분, 60 초 및 24 시간 및 월, 30 일의 차이로 나눕니다. , 60 분 60 초 24 시간.

마지막으로, 최종 차이를 인쇄하기 위해 변수에 모두 넣습니다.

DateTime()DateInterval() 사용 PHP 5.3 이상의 객체

이 방법은 두 날짜 사이의 차이를 얻는 객체 지향 스타일입니다. 날짜의 수동 계산이 필요하지 않으므로 최신 버전의 PHP에서 권장되기 때문에 가장 쉽습니다.

예:

$firstDate  = new DateTime("2019-01-01");
$secondDate = new DateTime("2020-03-04");
$intvl = $firstDate->diff($secondDate);

echo $intvl->y . " year, " . $intvl->m." months and ".$intvl->d." day"; 
echo "\n";
// Total amount of days
echo $intvl->days . " days ";

//output: 1 year, 2 months and 1 day
//        428 days

위의 예에서strtotime()및 기타 다른 함수와 계산을 사용하는 것과 달리DateTime()DateInterval()객체가 더 쉬워졌습니다.

먼저new DateTime()을 사용하여 날짜를 선언하십시오. 그런 다음 첫 번째 날짜의DateInterval()오브젝트diff()를 사용하여 차이의 정수 값을 가져오고 두 번째 날짜를 매개 변수로 전달하십시오.

마지막으로year를 얻으려면y 객체를 사용하십시오. m을 사용하여 월을 가져오고d를 사용하십시오.

관련 문장 - PHP Date

관련 문장 - PHP DateTime