sainjori
sainjori

Reputation: 83

Reading an Ical(.ics) file gives me wrong times. What am i missing?

I am getting wrong values reading from an.ics file(ical format). I suspect my timezone is not setup properly.

This is one sample:

BEGIN:VCALENDAR
PRODID:-//Ben Fortuna//iCal4j 1.0//EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20140625T024631Z
DTSTART:20140623T060000Z
DTEND:20140623T065000Z
UID:492532-7692-c75853
SUMMARY:4A RK R4A
LOCATION:Tolk

As you can see it says on DTSTART, that the event beginns at 060000Z which is at 6 in the mornig. But i got the ical file from a shool timetable where the first class beginns at 08:00 in the morning.

So i am confused what the reason for this is. This is where I got the ical file from: enter link description here

Any help would be greatly appreciated.

Upvotes: 0

Views: 1029

Answers (1)

cOle2
cOle2

Reputation: 4784

You need to correct for the timezone. The times in the .ics file are in the UTC timezone and that site is in Germany (CET timezone) so 6am UTC is actually 8am CEST.

For example:

<?php
//Create DateTime object of .ics time in UTC timezone
$utcTz = new DateTimeZone('UTC');
$dateTime = new DateTime('20140623T060000Z', $utcTz);

echo $dateTime->format("Y-m-d H:i:s"); //2014-06-23 06:00:00

//Change to CET timezone
$cetTz = new DateTimeZone('Europe/Berlin');
$dateTime->setTimezone($cetTz);

echo $dateTime->format("Y-m-d H:i:s"); //2014-06-23 08:00:00

Upvotes: 1

Related Questions