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

时间:2013-04-09 19:55:53

标签: php time

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

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

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

我无法弄清楚如何将时间转换为数字因为am / pm这就是为什么我问这个问题。我没有看到任何类似的问题所以我问过。

2 个答案:

答案 0 :(得分:70)

$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';
}

See it in action

参考

答案 1 :(得分:2)

我会重新考虑你首先使用substr函数和intval将字符串“转换”为整数。

执行此步骤,您应该能够简单地比较时间。

(请注意,您应该使用18:00而不是下午6:00,这将更容易处理,因此如果时间是AM或PM,您可以使用substr“检测”,只需将“12”添加到数字)

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

希望有所帮助

相关问题