2012-06-14 127 views
0

我在查看PHP date()文件並認爲'I'會告訴我您提供的日期是否在DST中。所以,我希望以下內容:我可以使用PHP date()測試夏令時(DST)嗎?

$d = strtotime('2012-07-01 12:30:00, Europe/London'); // this is in DST 
$bool = date('I',$d); // 1 

,但得到這個:

$bool = date('I',$d); // 0 

很顯然,我閱讀文檔錯誤。我知道我可以使用dateTimeZone()轉換做到這一點,但是這不是date()的特徵嗎?

回答

3

當你做strtotime你會得到一個整數。你已經失去了所有的時區,DST等信息,你只需要一個整數。見http://php.net/manual/en/function.strtotime.php

如果你想用那種信息工作,你應該使用DateTime類和函數:http://php.net/manual/en/class.datetime.php

,你可以,但我認爲你最好使用DateTime,當前的時區設置爲無論你想從信息:(從date()手冊,例如1:http://www.php.net/manual/en/function.date.php

date_default_timezone_set('UTC'); 

+0

你說得對,'date_defaul t_timezone_set('Europe/London');'then'date('I');'按預期工作。 – Owen

相關問題