繁体   English   中英

通过php ical生成的日历事件始终为1601年。如何解决?

[英]Calendar event generate through php ical is always 1601 year.How can i resolve it?

我正在使用php创建ical日历事件,但始终将日期设置为1601年1月1日。

这是我的代码

$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:support@cajunlodging.com\":MAILTO:support@cajunlodging.com\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 \\ THis。

你们可以建议我哪里错了。

iCalendar文件的正确日期/时间格式为yyyymmddThhmmssZ

例如: 20151126T133000Z

末尾的Z代表“ UTC时间”。 此格式的日期必须为UTC时间。

您说该日期始终设置为1601年1月1日。我假设您的意思是DTSTART日期。 现在,您为人们提供的所有帮助您的就是您有一个名为$ date_start的变量。

1601年1月1日是一个“特殊”日期( Windows epoch date ),它倾向于指示您没有正确设置日期变量,或者提供数据的方法不正确。

有了有意义的日期变量后,为了使您的ics文件日期正确,$ date_start应该是DICS或DATETIME批准的ics格式之一的字符串, 网址为DATE或DATETIME https://tools.ietf.org/html/rfc5545 #section-3.3.4

另请注意,您在

“ DTSTAMPTZID =非洲/内罗毕...

如果要使用TZID“ DTSTAMP; TZID = Africa / Nairobi ...,则需要分号...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM