0

我正在查看 PHPdate()文档,并认为这'I'会告诉我提供的日期是否在 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()吗?

4

1 回答 1

3

当你这样做时,strtotime你会得到一个整数。您丢失了时区、夏令时等的所有信息,您只得到一个整数。见http://php.net/manual/en/function.strtotime.php

如果你想使用这类信息,你应该使用DateTime类和函数: http: //php.net/manual/en/class.datetime.php

您可以,但我认为您最好使用DateTime,将当前时区设置为您希望从中获取信息的任何位置:

date_default_timezone_set('UTC');

(来自date()手册,示例1:http ://www.php.net/manual/en/function.date.php )

于 2012-06-14T11:20:11.600 回答