2015-11-26 2 views
1

Я создаю скую события календаря с PHP, но всегда от даты установлен на 1 января 1601Генерация календаря через php ical всегда 1601 год. Как я могу ее решить?

Вот мой код

$ical = "BEGIN:VCALENDAR\r\n"; 
$ical .= "VERSION:2.0\r\n"; 
$ical .= "PRODID:-//YourCassavaLtd//EateriesDept//EN\r\n"; 
$ical .= "METHOD:REQUEST\r\n"; 
$ical .= "BEGIN:VEVENT\r\n"; 
$ical .= "ORGANIZER;SENT-BY=\"MAILTO:[email protected]\":MAILTO:[email protected]\r\n"; 
$ical .= "ATTENDEE;CN=".$to_name.";ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE:mailto:".$to_address."\r\n"; 
$ical .= "UID:".strtoupper(md5($event_id))."helpdesk.myicloudapps.com\r\n"; 
$ical .= "SEQUENCE:0 \r\n"; 
$ical .= "STATUS:CONFIRMED\r\n"; 
$ical .= "DTSTAMPTZID=Africa/Nairobi:".date('Ymd').'T'.date('His')."\r\n"; 
$ical .= "DTSTART:".$date_start."\r\n"; 
$ical .= "DTEND:".$date_end."\r\n"; 
$ical .= "LOCATION:".$hotel."\r\n"; 
$ical .= "SUMMARY:".$title."\r\n"; 
$ical .= "DESCRIPTION:".$detail."\r\n"; 
$ical .= "BEGIN:VALARM\r\n"; 
$ical .= "TRIGGER:-PT15M\r\n"; 
$ical .= "ACTION:DISPLAY\r\n"; 
$ical .= "DESCRIPTION:Reminder\r\n"; 
$ical .= "END:VALARM\r\n"; 
$ical .= "END:VEVENT\r\n"; 
$ical .= "END:VCALENDAR\r\n"; 

и формат даты, как YMD \ ДАННОМ.

Так вы можете, ребята, предложить мне, где я ошибаюсь.

+0

Share фактический вывод этого скрипта. – Evert

ответ

2

Правильный формат даты/времени для файлов iCalendar: yyyymmddThhmmssZ.

Например: 20151126T133000Z

Зет в конце означает «время UTC». Даты в этом формате должны быть в формате UTC.

2

Вы говорите, что дата всегда установлена ​​1 января 1601 года. Предполагаю, вы имеете в виду дату DTSTART. Теперь все, что вы предложили людям, чтобы помочь вам в этом, состоит в том, что у вас есть переменная с именем $ date_start.

1 января 1601 г. является «специальной» датой (the windows epoch date), которая имеет тенденцию указывать, что вы не настроили свою переменную даты правильно или что-то, что предоставляет данные, не сделало это правильно.

После того как вы значащее переменные даты, то для мика дата файла, чтобы быть правильной, $ DATE_START должна быть строкой в ​​одном из утвержденных нне форматов, либо для DATE или DATETIME https://tools.ietf.org/html/rfc5545#section-3.3.4

Также обратите внимание на вас есть ошибка синтаксиса в

"DTSTAMPTZID = Африка/Найроби ...

вам нужна точка с запятой, если вы собираетесь использовать TZID " DTSTAMP; TZID = Африка/Найроби ...

 Смежные вопросы

  • Нет связанных вопросов^_^