2013-01-25 3 views
-1

가능한 중복 : 내가 지정된 두 날짜 사이의 년 개월 일을 계산하기 위해 노력하고
How to calculate the difference between two dates using PHP?
How to get difference between two dates in Year/Month/Week/Day?계산 개월, 년 일

PHP에서.

나는 또한 해당 날짜의 타임 스탬프를 사용하고 있습니다. 년과 월을 계산할 수있는 방법이 있습니까?

일 간의 시간 차이가 있습니다.

예를 들어 첫 번째 날짜는 2008 년 1 월 2 일이고 두 번째 날짜는 2012 년 7 월 5 일입니다. 이며 결과는 4 개월 5 개월 및 3 일입니다.

내가 날짜 입력으로 타임 스탬프에 노력하고 알고 싶어하고 직접 두 개의 입력 타임 스탬프 이상 일을 계산하는 사용할 수있는 기능

답변

15

DateTime 개체를 사용할 수 있습니다 (datetime 생성자의 누락 된 ","참고).

$datetime1 = new DateTime('2 Jan 2008'); 
$datetime2 = new DateTime('5 July 2012'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%y years %m months and %d days'); 
1

당신은 두 개의 날짜 시간 개체를 만들 수 있습니다 (www.php.net/datetime)이 있습니다 타임 스탬프에서. diff 메서드를 호출 할 때 년 및 월 속성이있는 DateInterval 개체가 생성됩니다.

9
당신은 날짜 시간 꽤 쉽게 할 수

:

$date1 = new DateTime("2008-01-02"); 
$date2 = new DateTime("2012-07-05"); 
$diff = $date1->diff($date2); 

echo "difference " . $diff->y . " years, " . $diff->m." months, ".$diff->d." days " 

Documentation

+0

2 월 달이 작동하지 않습니다, 그것은 2 월 달에 31 일이 소요 –

2

당신은 Carbon을 살펴해야한다, 그것은 많은 날짜 시간의 상단에 아주 새로운 PHP 5.3 lib 디렉토리입니다 유용한 방법들. 당신이 인간이 읽을 수 DIFF하려면

<?php 
$dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto'); 
$dtVancouver = Carbon::createFromDate(2013, 1, 1, 'America/Vancouver'); 
echo $dtOttawa->diffInHours($dtVancouver); 
echo $dtOttawa->diffInDays($dtVancouver); 
echo $dtOttawa->diffInMinutes($dtVancouver); 
echo $dtOttawa->diffInYears($dtVancouver); 

: 날짜 DIFF에 대한

$dt = Carbon::createFromDate(2011, 2, 1); 

echo $dt->diffForHumans($dt->copy()->addMonth());    // 28 days before 
echo $dt->diffForHumans($dt->copy()->subMonth());    // 1 month after