[英]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.