75

次の 3 つの文字列 (現在の時刻、日没、日の出) があります。現在の時刻が日の出と日没の間にあるかどうかを調べるにはどうすればよいですか?

$current_time = "10:59 pm";
$sunrise = "5:42 am";
$sunset = "6:26 pm";
4

2 に答える 2

107
$current_time = "4:59 pm";
$sunrise = "5:42 am";
$sunset = "6:26 pm";
$date1 = DateTime::createFromFormat('h:i a', $current_time);
$date2 = DateTime::createFromFormat('h:i a', $sunrise);
$date3 = DateTime::createFromFormat('h:i a', $sunset);
if ($date1 > $date2 && $date1 < $date3)
{
   echo 'here';
}

実際に見る

参照

于 2013-04-09T19:58:04.153 に答える
2

最初に substr 関数と intval を使用して文字列を整数に「変換」することをお勧めします。

このステップを終えると、単純に時間を比較できるはずです。

(午後 6 時の代わりに 18:00 を使用する必要があることに注意してください。これは扱いやすいため、時刻が午前または午後の場合は substr で「検出」し、数値に「12」を追加するだけで済みます)

これを行うためのよりエレガントな方法があると確信していますが、これは、高度なphp開発者ではない単純な方法の基本的なアイデアを提供するだけです。

それが役に立てば幸い

于 2013-04-09T20:01:38.313 に答える