2013-07-13 11 views
0

저는 피드 버너 피드에 나열된 url/post의 나이를 결정하는 프로젝트를 진행하고 있습니다. 나는 구문 분석 할 수 있고 다음과 같은 형식으로 pubDate 값을 얻습니다. Sat, 13 Jul 2013 10:00:15 +0000피드 버너 아이템 링크의 나이를 계산하는 방법은 무엇입니까?

원본 날짜 시간에서 현재 날짜를 뺀 PHP 스크립트를 만들고 싶습니다. 나는 이미 strtotime($item->pubDate)을 만들었지 만 시간대별로 혼란 스럽습니다. 스크립트는 모든 피드 (다른 시간대)에서 작동해야하며 스크립트는 모든 시간대에서 제대로 작동해야합니다.

그렇다면이 사양을 기반으로 게시물의 나이를 어떻게 결정할 수 있습니까?

+0

확인을 사용하여 원하는 형식으로 날짜 사이의 차이점이 밖으로 http://stackoverflow.com/a/11896631/342740 – Prix

답변

0

는이 같은 DateTime이에 대한 클래스, 특히 정적 메소드 `DateTime::createFromFormat()', 뭔가를 사용할 수 있습니다 : -

$dateStr = 'Sat, 13 Jul 2013 10:00:15 +0000'; 
$dateTime = \DateTime::createFromFormat('D, d M Y H:i:s O', $dateStr); 
$dateTime->setTimezone(new \DateTimeZone('UTC')); 
var_dump($dateTime); 
$diff = $dateTime->diff(new \DateTime('now', new \DateTimeZone('UTC'))); 
var_dump($diff); 

출력 : -

object(DateTime)[1] 
    public 'date' => string '2013-07-13 10:00:15' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'UTC' (length=3) 

object(DateInterval)[3] 
    public 'y' => int 0 
    public 'm' => int 0 
    public 'd' => int 0 
    public 'h' => int 22 
    public 'i' => int 47 
    public 's' => int 48 
    public 'invert' => int 0 
    public 'days' => int 0 

를 각 날짜 객체가 갖고 볼 수 있듯이 해당 시간대는 UTC로 설정됩니다. $diff은 '지금'과받은 날짜의 차이를 나타내는 DateInterval의 인스턴스입니다.

출력 할 수 있습니다 당신이 'DateInterval::format()'