PHP

2012-03-28 6 views
-1

가능한 중복 :
How to calculate the difference between two dates using PHP?PHP

은 내가으로 "2012-04-04"의 형태로 개봉 날짜를 보유하고 PHP의 배열을 예. 두 날짜의 차이점을 찾는 방법은 무엇입니까? 예를 들어

-

2012-04-04

2012-03-31

예상 응답 - 오일의 차이

+1

PHP> = V5.3 당신은 (['date_diff'] (http://php.net/manual/en/function.date-diff.php) (일명 ['날짜 시간 :: DIFF을 사용할 수 있습니다) '(http://www.php.net/manual/en/datetime.diff.php)) –

답변

1
$d1 = new DateTime('2012-04-04'); 
$d2 = new DateTime('2012-03-31'); 

$interval = $d1->diff($d2); 

echo $interval->format('%R%a days'); 
+0

Ive는 날짜를 배열에 넣습니다. 변수 대신 배열 항목의 차이점을 어떻게 찾을 수 있습니까? 당신의 도움을 주셔서 감사합니다 – user1064660

0

나는 차이를 계산하는 동안 다시이 함수를 썼다 날짜 사이. 차이를 만드는 모든 날짜 측정 값의 배열을 반환합니다.

function date_difference($date1, $date2) { 
    $seconds_count = array(
     'year' => (365 * 24 * 60 * 60), 
     'month' => (30 * 24 * 60 * 60), 
     'day' => (24 * 60 * 60), 
     'hour' => (60 * 60), 
     'minute' => 60 
    ); 

    $diff = abs($date1 - $date2); 

    $years = floor($diff/$seconds_count['year']); 
    $diff -= ($years * $seconds_count['year']); 

    $months = floor($diff/$seconds_count['month']); 
    $diff -= ($months * $seconds_count['month']); 

    $days = floor($diff/$seconds_count['day']); 
    $diff -= ($days * $seconds_count['day']); 

    $hours = floor($diff/$seconds_count['hour']); 
    $diff -= ($hours * $seconds_count['hour']); 

    $minutes = floor($diff/$seconds_count['minute']); 
    $diff -= ($minutes * $seconds_count['minute']); 

    $seconds = $diff; 

    return array('seconds' => $seconds, 'minutes' => $minutes, 'hours' => $hours, 'days' => $days, 'months' => $months, 'years' => $years); 
} 
+0

경우 PHP> = 5.3.0 '$ time_one = 새로운 날짜 시간 ('가 2010-07-29 12시 43분 : 54 ');' '$ time_two = 새로운 날짜 시간 ('2010-07-30 1시 23분 45초 ');' '에코 ($ time_one-> DIFF ($ time_two));' –

+0

아니에요 5.3+에, 그래서 이것은 내가 무엇을 사용 : –

+0

코리, 그것은 단지 내가이 몇 가지 심각한 제한을 유닉스 타임 스탬프를했다하여, 가난한 조언을 말하고 싶지만 바로 가기 = P –

0

각 날짜를 strtotime()으로 변환하면 유닉스 시간 스탬프 (초)가됩니다. 빼기 및 두 날짜 사이에 몇 초가 있는지 확인하십시오. 60 * 60 * 24는 일 초의 가치이며, 나누기와 반올림을하며 대략 일수가 있습니다. 당신이해야 할 것입니다 무엇

+0

입니다. 이제는 php에 DateTime 객체가 있습니다. 나는 당신의 제안보다는 강력하게 사용할 것을 권고합니다. – Bazzz

0

은 UTC 형식 (타임 스탬프)에 모두 날짜를 켭니다. 서로에게서 빼기보다는 그 차이를 초 단위로 줄 수 있습니다. 거기에서

은 단순히 일을 변환합니다.

차이 = 차이/(60 * 60 * 24).