2012-01-27 1 views
7

PHP 5.3의 날짜 비교 함수를 사용하여 두 날짜 간의 날짜 차이를 계산하는 데 다소 이상한 문제가 있습니다.일일 차이를 계산하는 날짜 차이가있는 이상한 PHP 5.3 문제

$currentDate = new DateTime(); // (today's date is 2012-1-27) 
$startDate = new DateTime('2012-04-01'); 

$diff = $startDate->diff($currentDate); 

$daysBefore = $diff->d; 

echo $daysBefore; 

위의 코드는 $ 조니와 변수의 값으로 4를 표시합니다 다음은 내 코드입니다.

2012 년 1 월 27 일과 2012 년 4 월 1 일 사이에 PHP가 4 일의 차이를 표시하는 이유는 무엇입니까?

내가 잘못 했나요?

답변

5

DateInterval::$d 인터벌의 일 부분의 차이 일 하지 총 개수이다. 이를 위해, 당신은 너무, DateInterval::$days을 원하는 :

$daysBefore = $diff->days; 
2

DateTime::diff 방법을 통해 DateInterval를 생성, 그냥 일하지 웁니다 만, 시간, 분, 초, 월과 단일 문자 특성 몇 년. 단일 문자 인 d을 며칠 동안 점검하고 있으며, 이는 일 년에 한 번 남은 일수로 계산됩니다.

diff을 사용할 때 실제로 채워지는 days 속성을 살펴보십시오.

여기의 동작은 크게 일치하지 않습니다. 다양한 방법을 통해 DateInterval을 만들 때 어떤 일이 발생하는지에 대한 흥미로운 정보는 DateInterval::format 매뉴얼 페이지를 확인하십시오.

2

d 속성은 "3 개월, 4 일"의 일수입니다. 총 숫자를 일로 지정하려면 days 속성을 사용하십시오.

관련 문제