У меня есть сценарий, который генерирует фид iCal из моей базы данных дат. Я обнаружил, что скрипт корректирует время для перехода на летнее время - то есть все время начала в базе данных составляет 21:00, но даты, указанные после конца марта, корректируются до 22:00 ... как я могу остановить это? ... Я просто хочу, чтобы время показывалось по мере их появления в базе данных, и я не хочу корректировки для летнего или часового пояса (поскольку сайт предназначен для аудитории в Великобритании).iCal php - как остановить переход на летнее время?
mysql_select_db($database_name, $connection); // makes other mysql_ functions act on this database
echo "BEGIN:VCALENDAR\r\n"; //some static ical headers
echo "VERSION:2.0\r\n";
echo "PRODID:-//www.the-guards.co.uk gig bible ical feed v1//EN\r\n";
echo "X-WR-CALNAME:Gig Dates\r\n";
echo "X-WR-TIMEZONE:Europe/London\r\n";
echo "X-WR-CALDESC:Private gig diary.\r\n";
$query = " … "; /* [SQL Query] */
$result = mysql_query($query);
define('DATE_ICAL', 'Ymd\THis\Z');
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo
"BEGIN:VEVENT\r\n".
"UID:{$row['id']}\r\n".
"SUMMARY:{$row['location_name']}\r\n".
"DTSTART:" .date(DATE_ICAL, strtotime("{$row['starts']}"))."\r\n".
"DTEND:" .date(DATE_ICAL, strtotime("{$row['ends']}"))."\r\n".
"END:VEVENT\r\n"
;
}
echo "END:VCALENDAR\r\n";
нормально, Я вставил это в строку после объявления «$ result», но я все равно получаю те же результаты .... Даты после конца марта добавили к своему времени 1 час. – dazzathedrummer
Исправлено - мне нужно было удалить ссылки «Европа/Лондон» - теперь все работает! – dazzathedrummer
На самом деле - это исправлено фид, все время верны для базы данных, но когда я вытаскиваю канал в ipad/Lotus Notes/Outlook, я получаю ту же проблему. Записи для дат в летнюю часть года (апрель-октябрь) добавляются к времени. – dazzathedrummer