由于时间刚刚在使用夏令时的地方改变了上周末,我确信会有一些与此相关的查询。
我正在尝试确定日期是否使用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格式化('Y-m-d Z T'):2011-10-29 3600 IST
日期结果('I',时间戳记):1
日期:2011-10-30时间戳:1319929200格式化('Y-m-d Z T'):2011-10-30 3600 IST
日期结果('I',时间戳记):1
日期:2011-10-31时间戳:1320019200格式化('Y-m-d Z T'):2011-10-31 0 GMT
日期结果('I',时间戳记):0
日期:2011-11-01时间戳:1320105600格式化('Y-m-d Z T'):2011-11-01 0 GMT
日期结果('I',时间戳记):0
答案 0 :(得分:0)
10月30日使用DST到凌晨3点左右。由于您的时间是午夜,这是在DST更改之前,因此30日被标记为具有夏令时。尝试将时间设置为上午10点,这应该会给出正确的结果。