icalendar — событие из php, начинающееся в 08:00 независимо от аргумента

Я использую php для отправки приглашения в календарь ICS с помощью этой замечательной функции:

    function sendIcalEmail($firstname,$lastname,$email,$meeting_date,$meeting_name,$meeting_duration,$address,$details) {

$from_name = "Jason";
$from_address = "[email protected]";
$subject = "Showing"; //Doubles as email subject and meeting subject in calendar
$meeting_description = $details;
$meeting_location = $address; //Where will your meeting take place
$message='';

//Convert MYSQL datetime and construct iCal start, end and issue dates
$meetingstamp = STRTOTIME($meeting_date . " UTC");
$dtstart= GMDATE("Ymd\THis\Z",$meetingstamp);
$dtend= GMDATE("Ymd\THis\Z",$meetingstamp+$meeting_duration);
$todaystamp = GMDATE("Ymd\THis\Z");

echo 'start:'.$dtstart.'<br><br>';
echo 'end:'.$dtend.'<br><br>';

//Create unique identifier
$cal_uid = DATE('Ymd').'T'.DATE('His')."-".RAND()."@mydomain.com";

//Create Mime Boundry
$mime_boundary = "----Meeting Booking----".MD5(TIME());

//Create Email Headers
$headers = "From: ".$from_name." <".$from_address.">\n";
$headers .= "Reply-To: ".$from_name." <".$from_address.">\n";

$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n";
$headers .= "Content-class: urn:content-classes:calendarmessage\n";

//Create Email Body (HTML)
$message .= "--$mime_boundary\n";
$message .= "Content-Type: text/html; charset=UTF-8\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";

$message .= "<html>\n";
$message .= "<body>\n";
//$message .= '<p>Dear '.$firstname.' '.$lastname.',</p>';
//$message .= '<p>Here is my HTML Email / Used for Meeting Description</p>';
$message .= "</body>\n";
$message .= "</html>\n";
$message .= "--$mime_boundary\n";

//Create ICAL Content (Google rfc 2445 for details and examples of usage)
$ical =    'BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ORGANIZER:MAILTO:'.$from_address.'
DTSTART:'.$dtstart.'
DTEND:'.$dtend.'
LOCATION:'.$meeting_location.'
TRANSP:OPAQUE
SEQUENCE:0
UID:'.$cal_uid.'
DTSTAMP:'.$todaystamp.'
DESCRIPTION:'.$meeting_description.'
SUMMARY:'.$subject.'
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR';

$message .= 'Content-Type: text/calendar;name="meeting.ics";method=REQUEST\n';
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $ical;

//SEND MAIL
$mail_sent = @MAIL( $email, $subject, $message, $headers );

IF($mail_sent)     {
RETURN TRUE;
} ELSE {
RETURN FALSE;
}

}

На моем телефоне в качестве даты / времени я вижу следующее:

Четверг 9 октября 2014 г.

с 08:00 до 09:00

с 12:00 до 13:00 (GMT)

где мои аргументы to и from следующие:

   start:20141009T120000Z

end:20141009T130000Z

Так что для меня 08:00 и 09:00 неожиданны. Но, может быть, я что-то упустил.

1

Решение

Какой у вас часовой пояс? Ваша программа, вероятно, показывает исходное время в формате UTC / GMT (буква Z — Zulu в метке времени) и добавляет время в вашем часовом поясе. 12:00 — 13:00 UTC совпадает с 8:00 — 9:00 утра по восточному поясному времени. Установите правильный часовой пояс в вашем времени начала и окончания.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]