2015-11-07 2 views
1

Я использую ICS-файл для своего приложения, показывающий правильную дату и время (например, 7 ноября 2014 года 11:50 (IST)), но я хочу отобразить время сначала, а затем дата (например, 11:50 утра 7 ноября, 2014 год (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). Это приложение, которое использует эти файлы, чтобы отображать даты в любом формате, который они выбирают.

+0

ok получил это @arnaudq –