Php UNIX时间戳(0):欧洲/伦敦返回UTC+;1.

Php UNIX时间戳(0):欧洲/伦敦返回UTC+;1.,php,timezone,timestamp,unix-timestamp,timezone-offset,Php,Timezone,Timestamp,Unix Timestamp,Timezone Offset,学习约会,他们现在让我很难受 $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

学习约会,他们现在让我很难受

$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
。莫斯科返回的
01-01-1970 03-00-00
再次不正确(
UTC+3:00
,而不是
UTC+4:00

但是,如果不使用
->setTimestamp
,伦敦当前时间将正确呈现

现场代码:

另外,我的本地时区是
欧洲/布拉格
UTC+1:00
)。使用
date\u default\u timezone\u set('Europe/London')
进行测试


我想我的逻辑有点错误吧?

这是因为很明显,英国在1970年1月1日,比UTC(我的重点)早一个小时:

1959-60年冬季的一项调查咨询了180个国家组织,结果显示,他们略微倾向于将全年的GMT+1改为GMT+1,但夏季的时间长度作为一项试验而延长,而不是取消在国内使用格林威治标准时间。[6]1966年至1967年间的进一步调查导致哈罗德·威尔逊政府引入了英国标准时间试验,英国全年保持GMT+1。这发生在1968年10月27日至1971年10月31日之间,当时恢复了先前的安排


timeanddate.com是查找此类信息的绝佳工具。

@hohner lol!不过,仔细想想,如果这张照片在什么地方有复制品,我也不会感到惊讶……哇,我从来都不知道。让我想把我那根本不存在的一堆历史书弄得粉身碎骨。我猜俄罗斯也做了类似的事情?@DavidL:MSK(莫斯科标准时间)在2011年之前是UTC+3(UTC+4夏季时间(MSD))。现在MSK全年都是UTC+4。