ポスターとして StackOverflow を使用するのは初めてで、通常は単なるブラウザーですが、今回は自分で問題に遭遇しました。
現在時刻に基づいて特定の変数を設定するスクリプトがあります。
<?php
// Sunday
if( in_array($day, array(Sun)) ){
echo 'Conditions = Day:' . $day . ' ' . 'Time: ' . $current_time;
if (($current_time >= '06:01') && ($current_time <= '10:00')) {
$stime = '06:00';
$etime = '10:00';
$showname = 'Dimitri Jegels';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} elseif (($current_time >= '10:01') && ($current_time <= '14:00')) {
$stime = '10:00';
$etime = '14:00';
$showname = 'Benito Vergotine';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} elseif (($current_time >= '14:01') && ($current_time <= '18:00')) {
$stime = '14:00';
$etime = '18:00';
$showname = 'Gavin Arends';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} elseif (($current_time >= '18:01') && ($current_time <= '22:00')) {
$stime = '18:00';
$etime = '22:00';
$showname = 'Tracy Lange';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} elseif (($current_time >= '22:01') && ($current_time <= '02:00')) {
$stime = '22:00';
$etime = '02:00';
$showname = 'Mehboob Bawa';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} elseif (($current_time >= '02:01') && ($current_time <= '06:00')) {
$stime = '02:00';
$etime = '06:00';
$showname = 'Training Slot';
$image = 'images/placeholder/on-air.jpg';
// echo $stime . ' and' . $etime . ' & ' . $showname . ' & ' . $image;
} else {
$stime = '??:??';
$etime = '??:??';
$showname = 'There is a barnacle!';
}
}
?>
スクリプトは正常に動作します。たとえば、13:00 の場合、10:00 と 14:00 の間をチェックします。
しかし、時刻が 23:30 で、22:00 から 02:00 の間でチェックすると、「フジツボがいます!」と表示されます。
02:00 が 22:00 未満であるため、22:00 から 02:00 へのジャンプがスクリプトを混乱させると思いますか?
最もきれいなコードや最良の方法ではありませんが、これを克服する方法を誰かが提案できるかどうか知りたいですか?