Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ICS URL输出延迟5小时_Php_Wordpress_Strtotime_Icalendar - Fatal编程技术网

Php ICS URL输出延迟5小时

Php ICS URL输出延迟5小时,php,wordpress,strtotime,icalendar,Php,Wordpress,Strtotime,Icalendar,首先,我要说我不是PHP开发人员。因此,我让另一位开发人员创建了一个插件,它从Wordpress插件CalendarizeIt获取开始和结束时间,并将其输出到格式化的ICS url中。问题是url输出的开始和结束时间比它应该的时间早了5个小时 以下是PHP的插件: <?php // Original script from http://jamiebicknell.tumblr.com/post/413492676/ics-generator-php-class#_=_ // Modifi

首先,我要说我不是PHP开发人员。因此,我让另一位开发人员创建了一个插件,它从Wordpress插件CalendarizeIt获取开始和结束时间,并将其输出到格式化的ICS url中。问题是url输出的开始和结束时间比它应该的时间早了5个小时

以下是PHP的插件:

<?php
// Original script from http://jamiebicknell.tumblr.com/post/413492676/ics-generator-php-class#_=_
// Modified by Sean Carruthers

$start          = $_GET['start'];
$end            = $_GET['end'];
$name           = $_GET['name'];
$description    = $_GET['description'];
$location       = $_GET['location'];
$uid            = "kaneko" . strtotime("now");

$data = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nMETHOD:PUBLISH\r\nBEGIN:VEVENT\r\nDTSTART:".date("Ymd\THis\Z",$start)."\r\nDTEND:".date("Ymd\THis\Z",$end)."\r\nLOCATION:".$location."\r\nTRANSP: OPAQUE\r\nSEQUENCE:0\r\nUID:".$uid."\r\nDTSTAMP:".date("Ymd\THis\Z")."\r\nSUMMARY:".$name."\r\nDESCRIPTION:".$description."\r\nPRIORITY:1\r\nCLASS:PUBLIC\r\nEND:VEVENT\r\nEND:VCALENDAR";

header("Content-type:text/calendar; charset=utf-8");
header('Content-Disposition: inline; filename="'.$name.'.ics"');
echo $data;
?>
我尝试将插件的
$uid
变量中的strotime更改为
+5小时
,但似乎不起作用

任何帮助都将不胜感激


哦,我还在Wordpress设置中修改时区。当前设置为UTC-5,因此我认为将其改为芝加哥会有所帮助,但也没有。在下面的行中添加
X-WR-TIMEZONE:America/NewYork

$data=“BEGIN:VCALENDAR\r\n版本:2.0\r\n方法:发布\r\nX WR时区:美国/纽约\r\n

更新:我已经更新了整行代码,它使用
DTSTART;VALUE=DATE:
而不使用
Z
DTEND

$data = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nMETHOD:PUBLISH\r\nX-WR-TIMEZONE:America/New_York\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:".date("Ymd\THis",$start)."\r\nDTEND;VALUE=DATE:".date("Ymd\THis",$end)."\r\nLOCATION:".$location."\r\nTRANSP: OPAQUE\r\nSEQUENCE:0\r\nUID:".$uid."\r\nDTSTAMP:".date("Ymd\THis\Z")."\r\nSUMMARY:".$name."\r\nDESCRIPTION:".$description."\r\nPRIORITY:1\r\nCLASS:PUBLIC\r\nEND:VEVENT\r\nEND:VCALENDAR";

感谢您的快速回答。不过,这似乎不起作用。您能为我们提供提要的输出吗?当然可以:
http://thekaneko.org/wp-content/plugins/kaneko/calendarize-it-mods/ics_event.php?start=1376388000&end=1376409600&name=The%20Millennial%20Trains%20Project&description=&location=KANEKO%20|%201111%20Jones%20St&
I更新了上面的答案,试试我给你的新台词
<a href="<?php echo $ics_url; ?>">
$data = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nMETHOD:PUBLISH\r\nX-WR-TIMEZONE:America/New_York\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:".date("Ymd\THis",$start)."\r\nDTEND;VALUE=DATE:".date("Ymd\THis",$end)."\r\nLOCATION:".$location."\r\nTRANSP: OPAQUE\r\nSEQUENCE:0\r\nUID:".$uid."\r\nDTSTAMP:".date("Ymd\THis\Z")."\r\nSUMMARY:".$name."\r\nDESCRIPTION:".$description."\r\nPRIORITY:1\r\nCLASS:PUBLIC\r\nEND:VEVENT\r\nEND:VCALENDAR";