php代码没有考虑夏令时

时间:2017-10-06 02:20:54

标签: php

我有以下代码,它显示夏令时生效并返回正确的日期和时间,以及正在使用的时区版本。然而,"白天"当地时间晚上11点,而不是晚上10点,晚上时间"需要表现出来。我一点都不擅长编码,也无法找到最好/最简单的方法来获得我想要的东西。请任何人帮忙吗?

<?php
date_default_timezone_set('Australia/Adelaide');

$hour = idate('H');

if (($hour >= 6 && $hour <= 22)) {
    // after 6am and before 10pm
    $daytime = true;

    if ($daytime === true) {
        print "Daytime";
    }   
}
else {
    // 10pm to 6am the next day
    $daytime = false;

    if ($daytime === false) {
        print "Night time";
    }   
}
?><br />

<?php date_default_timezone_set('Australia/Adelaide');
echo date("I, l, F jS, Y, h:i:s",time());
?><br /><br />

<?php echo timezone_version_get(); ?>

1 个答案:

答案 0 :(得分:0)

$hour = date("H:i");   

 if (($hour >= date("06:01") && $hour >= date("22:00")) {

如果DayTime = 06 - 10和NightTime = 10 - 06

的范围,您还需要比较分钟

由于他们持有相同的时间,唯一的区别是他们的时间。 通过这样,比较是DayTime = 06:01 - 22:00,除此之外将是NightTime