簡體   English   中英

比較星期幾和小時到現在

[英]compare day of week and hour to now

我想弄清楚當前時間是否介於兩天和小時的時間表之間,以確定我們是否需要顯示一些內容(上線),

我正在使用 date_i18n() function,因為我在 wordpress,並且需要配置時區中的日期。

這是我到目前為止所擁有的:

// live = Tuesday at 5:00pm thorugh Sunday at 4:59pm
// not live = Sunday at 5:00pm -> Tuesday at 4:59pm

$now = date_i18n('w-G'); // Date format: Week-Day: 0-6 - Hour: 1-23
echo "Now = ".$now."<br/>";

$live_start = date_i18n('w-G', '2-17'); // = date_i18n('w-G', strtotime('2-17'));
echo "Live Start: ".$live_start."<br/>";

$live_end = date_i18n('w-G', '0-16'); //date_i18n('w-G', strtotime('0-16'));
echo "Live End: ".$live_end."<br/>";

echo "<b>".$now.">=".$live_start." && ".$now."<=".$live_end."</b><br/>";

if(($now >= $live_start) && ($now <= $live_end)){
  echo "Live";
}else{
  echo "Not Live";
}

這就是我得到的:

Now = 1-13  
Live Start: 1-13  
Live End: 1-13  
1-13>=1-13 && 1-13<=1-13   
Live

我不確定它發生了什么,當前時間是正確的,星期一 13 小時。 我嘗試添加 strtotime() 和 "" 但沒有改變。

任何想法如何解決它,或者整個代碼可能很糟糕並且有更好的方法? 謝謝。

我不認為您從 date_i18ndate_i18n('w-G') 獲得的數據類型可以這樣比較。 嘗試將其分解為各個部分,以便您擁有可以比較的值。

$nowDay = date_i18n('w');
$nowHour = date_i18n('G'); 

$startDay = 2;
$startHour = 17;

$endDay = 0;
$endHour = 16;


switch ($nowDay) {
    case 0:
        if($nowHour >= $endHour){
          echo "Not Live";
        }else{
          echo "Live";
        }
    case 1:
        echo "Not Live";
    case 2:
        if($nowHour >= $startHour){
          echo "Live";
        }else{
          echo "Not Live";
        }
    case 3:
        echo "Live";
    case 4:
        echo "Live";
    case 5:
        echo "Live";
    case 6:
        echo "Live";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM