PHP:具有相同值的时区之间有什么区别吗?

时间:2015-12-30 13:40:08

标签: php time timezone unix-timestamp

例如,伦敦,里斯本和都柏林都有相同的时间:

date_default_timezone_set('Europe/London');
echo date('D, d M Y H:i:s P');// Wed, 30 Dec 2015 13:30:51 +00:00

date_default_timezone_set('Europe/Lisbon');
echo date('D, d M Y H:i:s P');// Wed, 30 Dec 2015 13:30:51 +00:00

date_default_timezone_set('Europe/Dublin');
echo date('D, d M Y H:i:s P');// Wed, 30 Dec 2015 13:30:51 +00:00

如果时间相同,这些时区之间是否存在隐藏的差异?喜欢:日光,任何特殊的计算,任何特定的功能都会给出不同的结果,等等。或者它会完全一样吗?

我问这个是因为,例如,在巴林'Asia/Bahrain'它是+ 03:00,而在卡塔尔'Asia/Qatar'它也是+ 03:00,如果我把它设置为巴林或卡塔尔,它真的会有所不同吗?

2 个答案:

答案 0 :(得分:2)

是的,各个时区之间存在很多差异。 PHP使用IANA / Olson时区数据库,也称为TZDB。您可以阅读有关tz数据库的更多信息:

特别是,您可以看到每个区域都有唯一的历史记录。虽然今天某些值可能相同,但它们可能在过去有所不同,要么偏离UTC,要么从一个偏移转换到下一个(对于DST和其他原因),以及每个时段使用的缩写。

例如,以下是指向您询问的区域的tzdb条目的链接。从历史上看,你会发现它们彼此截然不同。

答案 1 :(得分:-2)

没有... 他们是一样的......

PHP使用时区来计算日期和时间的差异。