【发布时间】:2011-05-23 15:46:17
【问题描述】:
我遇到了一个我无法理解的愚蠢问题。 下面这段代码怎么来的:
public function getFormattedOffsetFrom($refTimezoneId = 'Europe/Paris', $format = 'G\hi') {
$timestamp = time();
$reference = new DateTime('@'.$timestamp);
$referenceTimeZone = new DateTimeZone($refTimezoneId);
$reference->setTimezone($referenceTimeZone);
$datetime = new DateTime('@'.$timestamp);
$datetime->setTimezone($this->timezone);
$offset = $this->timezone->getOffset($datetime) - $referenceTimeZone->getOffset($reference);
$prefix = '+';
if($offset < 0) {
$prefix = '-';
$offset = abs($offset);
}
return $prefix.date($format, $offset);
}
其中 $this->timezone 是位于欧洲/马德里的 DateTimeZone 的一个实例,当没有指定参数时产生 +1h00 ????
巴黎和马德里没有时间偏移。我只是不明白。
非常感谢您的帮助!!!! 弗洛伦特
【问题讨论】:
-
啊,你是在比较巴黎和马德里,抱歉,我没听懂。你能输出原始偏移量看看有什么问题吗?可能是函数内部的错误
-
好吧,偏移量应该是0 :)
-
我认为您必须调试该功能,看看哪里出了问题......