75

我有以下三个字符串(当前时间、日落和日出),如何找到当前时间是否在日出和日落之间?

$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 将字符串“转换”为整数。

在这一步之后,您应该能够简单地比较时间。

(请注意,您应该使用 18:00 而不是 6:00 PM,这会更容易处理,因此您可以使用 substr“检测”时间是上午还是下午,然后在数字上添加“12”)

我很确定有更优雅的方法可以做到这一点,但这应该只是给你一个基本的想法,为不高级的 php 开发人员提供一种简单的方法。

希望能帮助到你

于 2013-04-09T20:01:38.313 回答