PHP的DateTimeZone::getOffset(timezone_offset_get)datetime
参数有什么意义?
<?php
$tz = new DateTimeZone("Asia/Tokyo");
var_dump($tz->getOffset(new DateTime())); // 32400
var_dump($tz->getOffset(new DateTime('now', new DateTimeZone('Asia/Taipei')))); // 32400
var_dump($tz->getOffset(new DateTime('now', new DateTimeZone('Europe/Budapest')))); // 32400
var_dump($tz->getOffset(new DateTime('2000-01-01', new DateTimeZone('America/New_York')))); // 32400
我遗漏了一些东西,还是参数根本不影响函数的输出?
文档中提到该函数计算参数的偏移量。这是什么意思?
答案 0 :(得分:1)
因为偏移量取决于日期。
例如,夏天Europe/Budapest
的偏移量为2小时(由于夏时制),冬天的偏移量为1小时:
$tz = new DateTimeZone("Europe/Budapest");
var_dump($tz->getOffset(new DateTime('2018-06-06', $tz))); // 7200
var_dump($tz->getOffset(new DateTime('2018-01-06', $tz))); // 3600
夏令时不是唯一的更改源,例如参见Moscow time:
$tz = new DateTimeZone("Europe/Moscow");
var_dump($tz->getOffset(new DateTime('2010-01-01', $tz))); // 10800
var_dump($tz->getOffset(new DateTime('2012-01-01', $tz))); // 14400
var_dump($tz->getOffset(new DateTime('2015-01-01', $tz))); // 10800