【发布时间】:2013-11-15 09:11:43
【问题描述】:
我有以下用于获取正确时间并用于我的网站的功能。 不幸的是,它不检查夏令时并导致时间错误。我想知道是否有人有可能的解决方案或帮助我解决我的问题?
我对 PHP 编码非常陌生,并且仍然在使用它。如果有人能够帮助我让它在未来自动切换,那将非常有帮助。
函数如下:
function getDSTDifference() {
$timezone = date_default_timezone_get();
$newTZ = new DateTimeZone($timezone);
$trans = $newTZ->getTransitions();
$offset = $trans[0]['offset'] /60 /60;
return $offeset;
}
---编辑---
为了更好地阐明我想说的话:
我有一个监控通话时间的网站。在 DST 和常规时间之间切换(反之亦然)期间,这些呼叫时间会减少一个小时。例如,上周末导致时间显示如下:-57:01:23。而不是拥有它的功能 - 每次DST和常规时间切换时我都必须手动进入并取消注释/注释掉这两行代码,是否有可能的解决方案使该功能能够做到这是自动的?有点像一个更永久的解决方案。对我来说,必须不断地重新访问该功能以一遍又一遍地进行看似简单的更改,这似乎是多余的编码。同样,我之前没有用 PHP 代码做很多工作,因此我不熟悉可以使用的内置函数,或者我是否必须自己创建它。如果有人对此有一些信息/帮助,将不胜感激。
function getDSTDifference() {
$timezone = date_default_timezone_get();
$NewTZ = new DateTimeZone($timezone);
$transition = $NewTZ->getTransitions();
$offset = $transition[0]['offset'] /60 /60;
//The following two lines need to be commented out when it is
//daylight savings time
//They need to be uncommented when Daylight Savings Time ends
$dst = $transition[0]['isdst'];
$offset = $offset - $dst;
return $offset;
}
希望这更有意义! 提前感谢您的帮助!
【问题讨论】:
-
这个函数应该做什么?老实说,我无法从当前代码中推断出它,而且您的文字描述非常模糊。
-
echo $timezone;的输出是什么? -
查看这个答案 => stackoverflow.com/questions/1586552/…
-
@geomagas - 当我添加
echo $timezone;时,我无法在我的 chrome 控制台中输出任何内容。你有什么想法吗? -
@ÁlvaroG.Vicario - 请参阅我上面的编辑。希望这对我正在尝试做的事情更有意义。如果我仍然太模糊,请告诉我。