如何在PHP中检查时间是否介于两次之间

use*_*582 58 php time

我有三个字符串(当前时间,日落和日出),如何查看当前时间是否在日出和日落之间?

$current_time = "10:59 pm";
$sunrise = "5:42 am";
$sunset = "6:26 pm";
Run Code Online (Sandbox Code Playgroud)

编辑:我不明白为什么我得到这么多的选票.我想这个网站是想问你是否不能自己做点什么.

我无法弄清楚如何将时间转换为数字因为上午/下午这就是为什么我问这个问题.我没有看到任何类似的问题,所以我问道.

Joh*_*nde 78

$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';
}
Run Code Online (Sandbox Code Playgroud)

看到它在行动

参考

  • 这可能适用于所有时间段都在同一天的简单情况,但如果您正在检查晚上10点是否大于晚上8点且不到凌晨2点,这将失败. (7认同)
  • 小编辑(如果没有手动给出当前时间).`$ current_time = date('h:i:s a');`如果我们在if条件下使用`> =,<=`那么我们将得到准确的答案..你的答案非常有用john ... (2认同)