我在我的项目中使用PHP的日期函数,并希望检查天气,给定的日期时间位于date-time.ie的给定范围之间,例如,如果当前日期时间是2010-11-16 12:25:00 PM并想检查时间是否在2010-11-16 09:00:00 AM到06:00:00 PM之间.在上面的情况下它是真的,如果时间不在范围之间,它应该返回false.是否有任何inbuild PHP函数来检查这个或我们将不得不写一个新函数?
只需使用strtotime将两次转换为unix时间戳:
示例函数可能如下所示:
function dateIsBetween($from, $to, $date = 'now') {
$date = is_int($date) ? $date : strtotime($date); // convert non timestamps
$from = is_int($from) ? $from : strtotime($from); // ..
$to = is_int($to) ? $to : strtotime($to); // ..
return ($date > $from) && ($date < $to); // extra parens for clarity
}
Run Code Online (Sandbox Code Playgroud)
检查日期/时间是否在范围内的功能:
function check_date_is_within_range($start_date, $end_date, $todays_date)
{
$start_timestamp = strtotime($start_date);
$end_timestamp = strtotime($end_date);
$today_timestamp = strtotime($todays_date);
return (($today_timestamp >= $start_timestamp) && ($today_timestamp <= $end_timestamp));
}
Run Code Online (Sandbox Code Playgroud)
带参数的呼叫功能开始日期/时间,结束日期/时间,今天的日期/时间.以下参数可用于检查今天的日期/时间是否在2012年6月26日上午10点到同一天中午之间.
if(check_date_is_within_range('2012-06-26 10:00:00', '2012-06-26 12:00:00', date("Y-m-d G:i:s"))){
echo 'In range';
} else {
echo 'Not in range';
}
Run Code Online (Sandbox Code Playgroud)