2017-10-06 78 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

相關問題