我被告知以下计算用户当地时间的方法有时不起作用.在
PHP中执行此操作的最佳方法是什么?你是做什么?
public function getTimeOffset ($time) {
$this->_cacheTimeOffset();
if ($this->timeOffsetExecuted) {
$d = date("O");
$neg = 1;
if (substr($d, 0, 1) == "-") {
$neg = -1;
$d = substr($d, 1);
}
$h = substr($d, 0, 2)*3600;
$m = substr($d, 2)*60;
return $time + ($neg * ($h + $m) * -1) + (($this->timeOffset + $this->getDstInUse()) * 3600);
}
return $time;
}
最佳答案 使用DateTime扩展名,例如
DateTime::getOffset,
有些国家/地区可能会执行多个时区更新,
这个方法DateTimeZone::getTransitions揭示了过渡历史