给定相对于UTC的unix时间戳和时区偏移量(例如-5),是否可以计算DST是否有效?
我可以做类似的事情:
<?php
echo 'DST enabled? ' . date('I', 1345731453) ."<br>";
?>
但是我看不到如何传递偏移量或TimeZone。
我还猜测时区和偏移之间存在差异,因为特定国家支持DST?
欣赏任何想法。
答案 0 :(得分:1)
正确,您需要从date和tz开始确定偏移量。
<+>在5.3+中,您可以获得开始/结束时段的转换,因此您可以只使用两者的时间戳,如下所示:$inputTime = $your_unix_timestamp;
$inputTZ = new DateTimeZone('Europe/London');
$transitions = $inputTZ->getTransitions($inputTime,$inputTime);
$offset = $transitions[0]['offset'];
$offset
是当时的DST偏移量
答案 1 :(得分:0)
获取时区:
$old_zone = ini_get('date.timezone');
将其更改为您想要的那个:
ini_set('date.timezone', 'Europe/Brussels');
还原:
ini_set('date.timezone', $old_zone);
PHP时间戳始终为UTC。根据您的时区设置,它决定了显示的时间。