Мой скрипт, похоже, неправильно учитывает разницу часовых поясов после первого элемента в последовательности.
date_default_timezone_set('UTC');
$today = date("Ymd");
$query = "SELECT cal_name, cal_time, cal_description, cal_date FROM webcal_entry WHERE cal_date = " . $today;
mysql_select_db($dbname);
$result = mysql_query($query);
$body = '';
$mail = '';
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$fixedTime = $row[1];
while (strlen($fixedTime) < 6)
$fixedTime = '0' . $fixedTime;
$unixEpoch = strtotime($fixedTime);
date_default_timezone_set('America/Denver');
$formattedTime = date("H:i", $unixEpoch);
$mail .= sprintf("Event: %s \nTime: %s \nDesc: %s \n\n", $row[0], $formattedTime, $row[2]);
}
mysql_free_result($result);
Вот сравнительный пример получения 2 писем, которые я получаю:
Это правильно ...
<<<<<<<<<< >>>>>>>>>>
Ваши события сегодня: 2012-03-03
Событие: Джонас Е из Л Рех
Время: 17:55
Описание: Театр Капитолия
<<<<<<<<<< >>>>>>>>>>
Этот не ...
<<<<<<<<<< >>>>>>>>>>
Ваши события сегодня: 2012-03-04
Событие: поездка
Время: 17:00
Описание: тур
Событие: Йонас Е Лерех
Время: 00:55
Описание: Театр Капитолия
<<<<<<<<<< >>>>>>>>>>
Обратите внимание, что один элемент в первом письме и второй элемент во втором должны совпадать по времени в обоих письмах, хотя второй не учитывает разницу во времени по сравнению с UTC на -7;кажется, что это прибавление 7 часов или вычитание 17. Первый элемент в любом письме всегда отформатирован правильно.
Я новичок в php sql, но я думаю, что это должен быть простой пропущенный цикл или что-то в этом роде.Любой вклад приветствуется.Спасибо