我有三个字符串(当前时间,日落和日出),如何查看当前时间是否在日出和日落之间?
$current_time = "10:59 pm";
$sunrise = "5:42 am";
$sunset = "6:26 pm";
编辑:我不明白为什么我得到这么多的选票。我想这个网站是想问你是否不能自己做点什么。
我无法弄清楚如何将时间转换为数字因为am / pm这就是为什么我问这个问题。我没有看到任何类似的问题所以我问过。
答案 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';
}
参考
答案 1 :(得分:2)
我会重新考虑你首先使用substr函数和intval将字符串“转换”为整数。
执行此步骤,您应该能够简单地比较时间。
(请注意,您应该使用18:00而不是下午6:00,这将更容易处理,因此如果时间是AM或PM,您可以使用substr“检测”,只需将“12”添加到数字)
我非常感觉有更优雅的方法可以做到这一点,但这应该只是给你一个基本的想法,为不高级的PHP开发人员提供一种简单的方法。
希望有所帮助