2017-10-06 35 views
0

我有以下代码,它显示夏令时有效并返回正确的日期和时间以及正在使用的时区版本。但是,“白天”一直保留到当地时间晚上11点,而不是晚上10点,当需要显示“夜间”时。我并不擅长编码,也无法弄清楚获得我想要的最好/最简单的方法。请任何人都可以帮忙?php代码没有考虑到夏令时

<?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(); ?> 

回答

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

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

你还需要将分钟比较,如果白天的范围= 06 - 10和夜间= 10 - 06

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

+0

谢谢,但不使用H意味着24小时,所以对于晚上10点应该是22,不应该它?不会10代表上午10点,而不是10点。 – user8722983

+0

我想我会被你的描述混淆..你的白天范围和夜间范围是什么? @ user8722983 – Kasnady

+0

白天从早上6点到晚上10点,即2200小时。晚上的时间是从晚上10点到早上6点。 – user8722983

相关问题