我有一個PHP腳本,它從RSS提要中提取並根據事件產生一系列輸出。直到上週,當夏令時發生變化時,該腳本一直工作正常。PHP - 從RSS提要中調整小時以適應夏令時
腳本正在關閉其在以下結構的日期RSS提要:我需要爲不同的PHP腳本星期四,2013年4月4日19時05分00秒GMT
:
pubdate的每天和每次,所以我用了以下內容:
$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);
對我來說重要的部分是'$小時'行。我需要嘗試調整夏令時。 pubDate始終處於GMT未調整狀態。
我正在考慮定義夏令時期的路線,如果在規定的時間範圍內,請在小時內加1。但是,我不確定這是一個好的解決方案。
任何幫助將不勝感激, 戴夫。
從註釋太大的幫助後,我結束了使用此
$expiry1 = $item->pubDate;
$到期=日期( 'd,d MYH:我:■\關',的strtotime($ expiry1「。歐洲/都柏林「));
一個hackjob的位,但它把過期恢復到它以前的格式,這意味着代碼的其餘部分可以解決它。
您應該從這些值構建一個日期對象並使用它。 – deed02392 2013-04-04 09:02:34
@ deed02392同意。看看這個帖子的靈感http://philsturgeon.co.uk/blog/2012/08/why-php-datetime-rocks – danneth 2013-04-04 09:07:10
僅靠小時是不夠的。在每個新的一天的第一個小時裏,你會在一天之內出現,而在夏季每個月的第一天裏,你會出現一個月。 – bcmcfc 2013-04-04 09:10:04