我有一个 PHP 脚本,它从 RSS 提要中提取并根据事件生成一系列输出。该脚本一直运行良好,直到上周夏令时发生变化。
该脚本正在处理具有以下结构的日期的 RSS 提要:
发布日期:格林威治标准时间 2013 年 4 月 4 日星期四 19:05:00
我需要为每一天和每一时间创建不同的 php 脚本,所以我使用了以下内容:
$expiry = $item->pubDate;
$expiryLenght = strlen("$expiry");
$timeStart = $expiryLenght - 12;
$time = substr("$expiry","$timeStart", 5);
$hour = substr("$time",0, 2);
$day_alpha = substr("$expiry",0, 3);
$day = substr("$expiry",5, 2);
$month = substr("$expiry",8, 3);
$year = substr("$expiry", 12, 4);
$month = strtolower($month);
$month_num = monthNum($month);
对我来说重要的部分是'$hour' 行。我需要尝试调整它以适应夏令时。pubDate 始终在未调整的 GMT 中。
我正在考虑沿着定义夏令时的路线前进,如果在时间范围内,则将小时加 1。但是,我不确定这是一个好的解决方案。
戴夫,任何帮助将不胜感激。
在评论的帮助下,我最终使用了这个
$expiry1 = $item->pubDate;
$expiry = date('D, d MYH:i:s \off', strtotime($expiry1 . " Europe/Dublin"));
有点骇人听闻,但它将 Expiry 恢复为以前的格式,这意味着其余代码可以解决它。