PHP的datetime
DateTimeZone::getOffset's (timezone_offset_get) 参数有什么意义?
<?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
我是遗漏了什么,还是参数根本不影响函数的输出?
文档提到函数计算参数的偏移量。这是什么意思?
发布于 2019-02-09 20:32:30
因为偏移量取决于日期。
例如,在夏季,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
夏令时并不是唯一的变化来源,参见莫斯科时间
$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
https://stackoverflow.com/questions/54610442
复制相似问题