2015-06-22 55 views
0

我翻遍了所有相關的帖子,但是我找不到錯誤的地方。我的目標是如果時間在早上6點到晚上7點之間有圖片顯示,如果時間在晚上7點到早上6點之間,則有不同的圖片顯示。 這就是我所擁有的,現在我只是感到困惑。如果時間在兩小時之間PHP

date_default_timezone_set('Canada/Newfoundland'); // NDT 
$current_date = date('G:i:s'); 

if ($current_date >= 19 && $current_date <= 6) { 
    echo "<img src=' $night ' />"; 
} else { 
    echo "<img src=' $day ' />"; 
} 

每當我跑我有什麼它始終是顯示出來,所以我認爲這個問題是我如何設置的時候別的嗎? 提前感謝您提供的任何幫助。

回答

1

看看你的約會創建

$current_date = date('G:i:s'); 

你得到的格式19:13:03的日期,以便比較其對數19可能不會很好地工作。

  • G - 24-hour format of an hour without leading zeros
  • i - Minutes with leading zeros
  • s - Seconds, with leading zeros

如果你只想小時,拿到

$hr = intval(date('G')); 

echo "<img src='" . ($hr >= 19 && $hr <= 6 ? $night : $day) . "' />"; 
+0

啊!非常好的一點。謝謝。 :) – FacetiousFemme

1

使用TIMEOFDAY Time of Day PHP,您正在將當前時間格式化爲24小時格式,分鐘和秒鐘。由於$ current_date將始終爲xx:xx:xx格式,因此它永遠不會等於6和19

+0

是的,好的。謝謝你的鏈接!總是欣賞他們! – FacetiousFemme

5
$hour = (int) date('G'); 

if ($hour >= 6 && $hour <=19) { 
    // between 6am and 7pm 
} else { 
    //between 7pm and 6am 
} 
+0

好的。所以只需要一小時就夠了。謝謝你幫助我! – FacetiousFemme

+0

@FacetiousFemme是的,因爲它是你想要比較的唯一東西。在你的代碼中,你正在比較一個完整的日期字符串與數字 –

+0

Upvoted,你的解決方案更短:) – Vhortex

相關問題