PHP를 사용하여 두 날짜의 차이를 계산하는 방법
-
strtotime()
을 사용하여 5.3 이하의 PHP 버전에서 두 날짜의 차이를 계산 -
DateTime()
및DateInterval()
사용 PHP 5.3 이상의 객체
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 에서 날짜에 날짜를 추가하는 방법
- PHP에서 DateTime을 문자열로 변환하는 방법
- PHP에서 문자열을 날짜 및 날짜-시간으로 변환하는 방법
- PHP에서 한 날짜 형식을 다른 날짜 형식으로 변환하는 방법
- PHP에서 현재 날짜와 시간을 얻는 방법