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

PHP: Is there any difference between timezones which have same value?

例如,伦敦、里斯本和都柏林共享同一时间:

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,所以如果我将其设置为巴林或卡塔尔?

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

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

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

特别是,您可以看到每个区域都有独特的历史。虽然今天有些值可能相同,但它们在过去可能有所不同,无论是与 UTC 的偏移量,从一个偏移量到下一个偏移量的转换日期(出于 DST 和其他原因),还是每个时期使用的缩写。

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