2012-09-02 2 views
1

저는 PHP 전문가가 아니며 .ics 파일의 날짜를 형식화하는 데 문제가 있습니다.php : .ics (iCal) 파일을 작성 하시겠습니까? 날짜 형식화?

그래서 난 내가 completey 제거있어 왜 날짜를 포맷으로 단지 문제가

foreach($posts as $post) : setup_postdata($post); 
     $ical .= "BEGIN:VEVENT 
     UID:" . md5(uniqid(mt_rand(), true)) . "mysite.com 
     DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z 
     DTSTART:".get_event_date($post)."00Z 
     DTEND:".get_event_end_date($post)."00Z 
     SUMMARY:".get_the_title($post->ID)." 
     DESCRIPTION:".get_the_excerpt($post->ID)." 
     END:VEVENT"; 
    endforeach; 

(A $ 포스트 내 경우에는 이벤트입니다) 각 $post에 대한 일정 항목을 생성하는 루프가 그것의 그리고 너희들이 나를 도울 수 있기를 바랍니다.

get_event_date($post)get_event_end_date($post)1258665163과 같은 타임 스탬프를 반환합니다. 이 타임 스탬프를 iCal .ics 파일의 올바른 형식으로 변환하려면 어떻게해야합니까?

또한 각 이벤트의 time을 추가하고 싶습니다. 그 두 함수는 모두 다음과 같은 형식으로 시간을 돌려 get_event_time($post)get_event_end_time($post)라고 : 11:00 또는 14:00

누군가가 나를 여기 도와 드릴까요? 나는 정말로 도움이된다.

답변

2

기본적으로 유닉스 타임 스탬프를 iCal에 지정된 형식으로 변환하고 싶습니다.

바로 그 일을,이 작은 보석을 포함 php manual regarding the date function에서 멋진 작은 코멘트있다 :

// Converts a unix timestamp to iCal format (UTC) - if no timezone is 
// specified then it presumes the uStamp is already in UTC format. 
// tzone must be in decimal such as 1hr 45mins would be 1.75, behind 
// times should be represented as negative decimals 10hours behind 
// would be -10 

function unixToiCal($uStamp = 0, $tzone = 0.0) { 

    $uStampUTC = $uStamp + ($tzone * 3600);  
    $stamp = date("Ymd\THis\Z", $uStampUTC); 

    return $stamp;  

} 

어쩌면이 도움이.

관련 문제