2

私は PHP の専門家ではなく、.ics ファイルの日付の書式設定に問題があります。

したがって、それぞれのカレンダーエントリを生成するループがあります$post(私の場合、$post はイベントです)。

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;

日付のフォーマットに問題があるため、日付を完全に削除しました。皆さんが私を助けてくれることを願っています.

のようなタイムスタンプを返す2 つの関数がget_event_date($post)あります。このタイムスタンプを iCal .ics ファイルの正しい形式に変換するにはどうすればよいですか?get_event_end_date($post)1258665163

timeさらに、各イベントの も追加したいと思います。これら 2 つの関数が呼び出されget_event_time($post)get_event_end_time($post)どちらも次の形式で時刻を返します:11:00または14:00

ここで誰か助けてくれませんか?助けていただければ幸いです。

4

1 に答える 1

3

基本的には、UNIX タイムスタンプを iCal に指定された形式に変換したいと考えています。

この小さな宝石を含む日付関数に関するphpマニュアルには、まさにそれを行う素晴らしい小さなコメントがあります。

// 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;       

} 

たぶんこれが役立ちます。

于 2012-09-02T09:52:29.713 に答える