2009-09-01 2 views
2

이것은 하나의 형식으로 날짜를 작동 : 0000-00-00타임 스탬프 이후로 일을 계산 하시겠습니까?

하지만

function dateDiff($start, $end) { 

    $start_ts = strtotime($start); 

    $end_ts = strtotime($end); 

    $diff = $end_ts - $start_ts; 

    return round($diff/86400); 

} 

사람이 동생을 도울 수

유닉스 타임 스탬프 형식의 기능을 필요 ??

답변

9

매개 변수로받은 두 날짜의 시간 소인을 계산하는 대신 매개 변수로 해당 시간 소인을받을 수 있습니다. 즉 strtotime에 대한 호출을 제거하면됩니다. 이 같은

뭔가 트릭을 할해야한다, 나는 가정 :

function dateDiffTs($start_ts, $end_ts) { 
    $diff = $end_ts - $start_ts; 
    return round($diff/86400); 
} 

Afterall는, strotime가 날짜 ;-) 예를 들어


에 해당하는 당신에게 타임 스탬프를 얻을,이 :

var_dump(dateDiffTs(1251151200, 1251410400)); 

3 일 (1251151200은 2009-08-25이고 1251410400은 2009-08-28 임).

그리고 당신은 너무 타임 스탬프에 시간이 있으면이 작동 :

var_dump(dateDiffTs(1251196200, 1251443700)); 

당신이 너무 삼일 (1251196200입니다 2009-08-25 12시 30분 0초과 1,251,443,700는 2009-08-28입니다 가져옵니다 09:15:00).

+0

감사합니다. 그것은 많은 코드가 아니었다! 나는 좋아한다. –

+2

길이가 23/25 시간 인 DST 고려 사항으로 인해 정확하지 않습니다. – shealtiel