2015-03-03 99 views
0

如果我有用戶的時區(例如:澳大利亞/悉尼),如何使用PHP查找夏令時在當地時間開始的日期和時間?如何查找日期和時間夏時制開始

+0

AFAIK PHP可以告訴你夏時制是否適用於某個日期,但如果你想知道何時開始夏令時,你需要使用服務。如果您的要求有限,您可以查找並硬編碼日期。 – 2015-03-03 04:31:19

+2

我認爲這已被回答[在此之前](http://stackoverflow.com/questions/6155224/php-daylight-saving-time-detection) – phpPhil 2015-03-03 04:31:41

+0

@phpPhil不,它不完全回答我的問題。該功能只是告訴你夏時制的變化。然而,它從中得到了一個想法,現在將它作爲答案。謝謝您的幫助! – 2015-03-03 05:04:16

回答

0

我結束了基於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>'; 
相關問題