YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

RSS나 ATOM의 날짜 UNIX timestamp으로 변환

페이지 정보

작성자 MintState 댓글 0건 조회 11,953회 작성일 09-10-09 10:02

본문

RSS나 ATOM의 날짜 UNIX timestamp으로 변환

보통 RSS나 ATOM에 날짜(시간)는 다음과 같은 형식 입니다.
Tue, 29 Sep 2009 09:38:44 +0900
2009-09-29T09:38:44+09:00

이런 값들을 다른 형식으로 표현 하기위해서 많이 쓰는 기준값이 UNIX timestamp 입니다.

아래는 위와 같은 형식의 값을 UNIX timestamp 으로 변환해보는 함수를 간략하게 만든  것입니다.

<?php
echo "Timestamp : ".parse_rssdate("2009-09-29T09:38:44+09:00")."<br />";
echo "Date : ".date("Y-m-d H:i:s",parse_rssdate("2009-09-29T09:38:44+09:00"))."<br />";

function parse_rssdate ( $date_str ) {    
    # regex to match wc3dtf
    $pat = "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/";

    if ( preg_match( $pat, $date_str, $match ) ) {
        list( $year, $month, $day, $hours, $minutes, $seconds) = 
            array( $match[1], $match[2], $match[3], $match[4], $match[5], $match[6]);
        
        # calc epoch for current date assuming GMT
        $epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year);
        
        $offset = 0;
        if ( $match[10] == 'Z' ) {
            # zulu time, aka GMT
        }
        else {
            list( $tz_mod, $tz_hour, $tz_min ) =
                array( $match[8], $match[9], $match[10]);
            
            # zero out the variables
            if ( ! $tz_hour ) { $tz_hour = 0; }
            if ( ! $tz_min ) { $tz_min = 0; }
        
            $offset_secs = (($tz_hour*60)+$tz_min)*60;
            
            # is timezone ahead of GMT?  then subtract offset
            #
            if ( $tz_mod == '+' ) {
                $offset_secs = $offset_secs * -1;
            }
            
            $offset = $offset_secs; 
        }
        $epoch = $epoch + $offset;
    }
    else {
        $epoch = strtotime($date_str);
    }
		return $epoch;
}
?>

댓글목록

등록된 댓글이 없습니다.

Total 165건 2 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
140 MintState 13978 07-02
139 MintState 12106 06-30
138 MintState 18016 04-28
137 MintState 11590 02-12
136 MintState 19721 01-13
열람중 MintState 11954 10-09
134 MintState 13729 08-25
133 MintState 10930 07-28
132 MintState 13183 04-28
131 MintState 16875 04-09
130 MintState 11723 04-06
129 MintState 9351 02-25
128 MintState 12010 02-25
127 MintState 8528 02-23
126 MintState 7768 02-23
125 MintState 11589 02-23
124 MintState 12081 02-17
123 MintState 10910 02-17
122 MintState 12897 11-17
121 MintState 12759 11-17
120 MintState 8267 11-17
119 MintState 12940 11-17
118 MintState 9533 11-17
117 MintState 11234 11-10
116 MintState 10064 11-10
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2019, YesYo.com MintState. ™