我的脚本似乎没有在序列中的第一项之后正确考虑时区差异。
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封电子邮件的比较示例:
&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT; &GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;
您今天的活动:2012-03-03
事件:L reh的Jonas E.
时间:17:55
描述:国会大厦剧院
&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT; &GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;
&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT; &GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;
您今天的活动:2012-03-04
活动:旅游之旅
时间:17:00
描述:游览
事件:L reh的Jonas E.
时间:00:55
描述:国会大厦剧院
&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT;&LT; &GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;
注意第一封电子邮件中的一个项目和第二个电子邮件中的第二个项目在两个电子邮件中应该是同一时间,尽管第二个项目不考虑与UTC的-7时差;它似乎是增加7个小时或减去17个。任何电子邮件中的第一个项目始终格式正确。
我是php sql的新手,但我认为这必须是一个简单的错过循环或其他东西。任何输入都表示赞赏。感谢