UNIX时间戳(0):欧洲/伦敦返回UTC + 1
问题描述:
学习日期,他们给我现在很难。UNIX时间戳(0):欧洲/伦敦返回UTC + 1
$london = new DateTime();
$london->setTimestamp(0);
$london->setTimeZone(new DateTimeZone('Europe/London'));
echo $london ->format('d-m-Y H-i-s');
结果:
01-01-1970 01-00-00
不应该是在伦敦,因此UTC +0:00
午夜?例如,纽约返回前一日期的19:00,正确的是UTC -5:00
。莫斯科不使用->setTimestamp
返回01-01-1970 03-00-00
这又是不正确的(UTC +3:00
而不是UTC +4:00
)
,伦敦当前的时间正确渲染,虽然。
Livecode:http://sandbox.onlinephpfunctions.com/
而且,我的本地时区为Europe/Prague
(UTC +1:00
)。测试date_default_timezone_set('Europe/London')
以及。
我认为在我的逻辑中有一些错误?
答
这是因为很明显,英国是在British Summer Time于1970年1月1日,UTC提前一小时(重点煤矿):
的1959至1960年冬季的调查,其中180国家组织进行了咨询,发现略有偏好改变为全年GMT + 1,但夏季时间的长度延长了审判,而不是在国内使用格林威治标准时间[6]。在1966-67年期间的进一步调查导致哈罗德威尔逊政府推出英国标准时间实验,英国在格林尼治标准时间+1时全年保持不变。这发生在1968年10月27日至1971年10月31日之间,当时回到原来的安排。
timeanddate.com的Time Zone Converter是一个很好的工具,用于查找这样的东西。
PHP的等价物http://stackoverflow.com/a/6841479/427992? ;) – hohner 2013-02-16 14:05:51
@hohner大声笑!想想看,虽然,如果这里有重复的地方,我不会感到惊讶...... – 2013-02-16 14:06:33
哇,我从来不知道。让我想到我不存在的一堆历史书籍的尘埃。我猜俄罗斯做了类似的事情吗? – Dwelle 2013-02-16 14:13:00