繁体   English   中英

PHP错误检查DST,夏令时

[英]PHP error checking for DST, Daylight Savings Time

由于上周末使用夏时制的地方的时间刚刚改变,我敢肯定会有与此相关的一些查询。

我试图确定某个日期是否使用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

date('I',timestamp)的结果:1

日期:2011-10-30时间戳:1319929200格式(“ Ymd Z T”):2011-10-30 3600 IST

date('I',timestamp)的结果:1

日期:2011-10-31时间戳:1320019200格式化('Ymd Z T'):2011-10-31 0 GMT

date('I',timestamp)的结果:0

日期:2011-11-01时间戳:1320105600格式(“ Ymd Z T”):2011-11-01 0 GMT

date('I',timestamp)的结果:0

10月30日使用DST的时间大约是凌晨3点。 由于您的时间是午夜,所以这是夏令时更改的时间,因此30日被标记为具有夏令时。 尝试将时间设置为10AM,这样应该可以得到正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM