2011-10-31 262 views
0

由於時間剛剛改變了過去的週末在使用夏令時的地方,我相信會有一些與此相關的疑問。夏令時,夏令時PHP錯誤檢查

我想確定一個日期是否使用DST或不。爲此,我假設2011年10月30日不使用DST,因爲交換機在當天發生..這是正確的嗎?

下面是代碼(我希望10月30不使用DST):

<?php 
echo "Timezone = " . date_default_timezone_get(); 
echo "</br>"; 

$dateOct29='2011-10-29'; 
$dateOct29Timestamp=strtotime($dateOct29,time()); 
$checkDayLightSavingOct29=date('I',$dateOct29Timestamp); 
echo "Date : ".$dateOct29." Timestamp : ".$dateOct29Timestamp." Formatted ('Y-m-d Z T'): ".date('Y-m-d Z T',$dateOct29Timestamp)."</br>"; 
echo "Result of date('I',timestamp) : ". $checkDayLightSavingOct29."</br>"; 

$dateOct30='2011-10-30'; 
$dateOct30Timestamp=strtotime($dateOct30,time()); 
$checkDayLightSavingOct30=date('I',$dateOct30Timestamp); 
echo "Date : ".$dateOct30." Timestamp : ".$dateOct30Timestamp." Formatted ('Y-m-d Z T'): ".date('Y-m-d Z T',$dateOct30Timestamp)."</br>"; 
echo "Result of date('I',timestamp) : ". $checkDayLightSavingOct30."</br>"; 

$dateOct31='2011-10-31'; 
$dateOct31Timestamp=strtotime($dateOct31,time()); 
$checkDayLightSavingOct31=date('I',$dateOct31Timestamp); 
echo "Date : ".$dateOct31." Timestamp : ".$dateOct31Timestamp." Formatted ('Y-m-d Z T'): ".date('Y-m-d Z T',$dateOct31Timestamp)."</br>"; 
echo "Result of date('I',timestamp) : ". $checkDayLightSavingOct31."</br>"; 

$dateNov01='2011-11-01'; 
$dateNov01Timestamp=strtotime($dateNov01,time()); 
$checkDayLightSavingNov01=date('I',$dateNov01Timestamp); 
echo "Date : ".$dateNov01." Timestamp : ".$dateNov01Timestamp." Formatted ('Y-m-d Z T'): ".date('Y-m-d Z T',$dateNov01Timestamp)."</br>"; 
echo "Result of date('I',timestamp) : ". $checkDayLightSavingNov01."</br>"; 


?> 

此打印如下:

時區=歐洲/都柏林

日期:2011-10 -29時間戳:1319842800格式化('Ymd Z T'):2011-10-29 3600 IST

結果日期('I',時間戳):1

日期:2011-10-30時間戳:1319929200格式化( 'YMDŽT'):日期2011-10-30 3600 IST

結果( 'I',時間戳):1個

日期: 2011-10-31時間戳:1320019200格式化( 'YMDžT'):2011-10-31 0 GMT

結果日期( 'I',時間戳):0

日期:2011-11- 01時間戳:1320105600格式化('Ymd Z T'):2011-11-01 0 GMT

d ('I',時間戳):0

回答

0

10月30日使用DST時間大約凌晨3點。由於你的時間是在午夜,所以這是在DST變化之前,因此30日被標記爲具有DST。嘗試設置時間到上午10點,並應該給出正確的結果。

+0

感謝您的超級快速回答,我們閱讀時在房間裏聽到了集體答案。 –