2012-06-14 126 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

相关问题