2015-11-07 26 views
1

我正在使用ICS文件顯示正確的日期和時間(例如,2014年11月7日上午11:50(IST)),但我想先顯示時間,然後按日期(如11:50上午坐在2014年11月7日(IST))如何做到這一點?如何在ICS中顯示時間第一次後跟日期

class ICS{ 

function __construct(){ 

} 

function generateICS($timestamp_start, $timestamp_end, $subject, $address, $description, $event_url){ 

    $datestr_start = $this->dateToCal($timestamp_start); 
    $datestr_end = $this->dateToCal($timestamp_end); 
    $datestr_current = $this->dateToCal(date('U')); 

    $esc_subject = $this->escapeString($subject); 
    $esc_address = $this->escapeString($address); 
    $esc_description = $this->escapeString($description); 
    $esc_url = $this->escapeString($event_url); 

    $uniqid = uniqid(); 

    $ics = <<<ICS 
    BEGIN:VCALENDAR 
    VERSION:2.0 
    PRODID:-//hacksw/handcal//NONSGML v1.0//EN 
    CALSCALE:GREGORIAN 
    BEGIN:VEVENT 
    DTEND:$datestr_end 
    UID:$uniqid 
    DTSTAMP:$datestr_current 
    LOCATION:$address 
    DESCRIPTION:$esc_description 
    URL;VALUE=URI:$esc_url 
    SUMMARY:$esc_subject 
    DTSTART:$datestr_start 
    END:VEVENT 
    END:VCALENDAR 
    ICS; 
     return $ics; 
    } 

function dateToCal($timestamp) { 
    return gmdate('Ymd\THis', $timestamp); 
} 

function escapeString($string) { 
    return preg_replace('/([\,;])/','\\\$1', $string); 
} 

} 
?> 
+0

請描述您的問題位更多 –

+0

您確定這是一個php相關的問題?我希望標準格式能夠爲時間戳使用固定格式,以便所有交換這些數據的軟件組件都能理解其含義。標準中的自由格式沒有多大意義。我期望它是由可視化層來格式化交換的數據,如用戶配置。 – arkascha

+0

其實它不是一個PHP相關的問題,但我想知道是他們的任何PHP函數來更改格式(這意味着顯示時間和日期,而不是日期和時間)。 –

回答

1

你正在看錯了地方。 ics文件中日期和時間的格式是固定的,並由iCalendar規範定義(請參閱http://tools.ietf.org/html/rfc5545#section-3.3.5)。 這取決於應用程序使用這些ics文件來顯示他們選擇的任何格式的日期。

+0

確定了@arnaudq –

相關問題