0
如果我有用户的时区(例如:澳大利亚/悉尼),如何使用PHP查找夏令时在当地时间开始的日期和时间?如何查找日期和时间夏时制开始
如果我有用户的时区(例如:澳大利亚/悉尼),如何使用PHP查找夏令时在当地时间开始的日期和时间?如何查找日期和时间夏时制开始
我结束了基于t his ticket的一些代码的工作。
$tz = new DateTimeZone('Australia/Sydney');
$transitions = $tz->getTransitions();
if (is_array($transitions)) {
foreach ($transitions AS $k => $t){
// Look for current year
if (substr($t['time'],0,4) == date('Y')) {
// If isdst is set to 1, that means daylight savings starts on this date
if (!empty($t['isdst'])) {
$trans = $t;
// If isdst is empty, that means daylight savings has already started
// so I'll go back to the previous transition
} else {
$prev_k = $k - 1;
$trans = $transitions[$prev_k];
}
break;
}
}
}
echo '<pre>';
print_r($trans);
echo '</pre>';
AFAIK PHP可以告诉你夏时制是否适用于某个日期,但如果你想知道何时开始夏令时,你需要使用服务。如果您的要求有限,您可以查找并硬编码日期。 – 2015-03-03 04:31:19
我认为这已被回答[在此之前](http://stackoverflow.com/questions/6155224/php-daylight-saving-time-detection) – phpPhil 2015-03-03 04:31:41
@phpPhil不,它不完全回答我的问题。该功能只是告诉你夏时制的变化。然而,它从中得到了一个想法,现在将它作为答案。谢谢您的帮助! – 2015-03-03 05:04:16