2011-06-12 2 views
1

나는이 시간 형식이 무엇인지 모르겠어요이PHP의 * 시간 전에

2011-06-11T08:51:51Z 

처럼 보이는 시간 문자열을 가지고,하지만 난 그것을보고 꽤 아니다 알고있다. 누군가를 "* hours ago"형식으로 변환 할 수있게 도와 주시겠습니까?

+1

참고로,이 형식의 공식 명칭은 [ISO 8601] (HTTP : // EN .wikipedia.org/wiki/ISO_8601). – seriousdev

+0

[ '초 전', '분 전', '시간 전'등의 날짜 계산 및 표시 가능] (http://stackoverflow.com/questions/2452010/calculating-and-showing-a-date- as-secs-ago-mins-ago-hours-ago-etc) – Gordon

답변

3
$tstamp = strtotime('2011-06-11T08:51:51Z'); 

, 당신에게 타임 스탬프를 제공 같은 시간의 수를 계산합니다 :

$hours = floor((time() - $stamp())/3600); 
+0

@freddy K. Z는 ISO8601에서 온 것입니다. 그리고 그것은 UTC 시간을 의미합니다 ... – Nobita

+0

Z는 줄루 시간 (즉, UTC)을 지정합니다. http://en.wikipedia.org/wiki/Coordinated_Universal_Time –

+0

건배, 답변을 업데이트했습니다. – konsolenfreddy

0

먼저해야 할 일은 숫자 (strtotime())로 변환 한 다음 현재 시간 (time())과 비교하고 마지막으로 나눕니다 결과는 3600 (한시간의 초 수)입니다.

0

내가이 할 것 : $timestamp = strtotime($time_to_convert);

  • :

    1. 을 해당 문자열의 타임 스탬프를 가져옵니다 실제 타임 스탬프 가져 오기 : $actual_timestamp = time();
    2. 초록 :시간
    3. 패스를 : $hours = $dif_timestampm/3600;
  • 3

    PHP 5.3에서 사용할 수 DateInterval :

    $date = new DateTime('2011-06-11T08:51:51Z'); 
    $now = new DateTime(); 
    $diff = $now->diff($date); 
    echo $diff->format('h'); 
    
    관련 문제