开发者

PHP function to check time between the given range?

开发者 https://www.devze.com 2023-01-25 12:44 出处:网络
I am using PHP\'s Date functions in m开发者_运维问答y project and want to check weather a given date-time lies between the given range of date-time.i.e for example if the current date-time is 2010-11-

I am using PHP's Date functions in m开发者_运维问答y project and want to check weather a given date-time lies between the given range of date-time.i.e for example if the current date-time is 2010-11-16 12:25:00 PM and want to check if the time is between 2010-11-16 09:00:00 AM to 06:00:00 PM. In the above case its true and if the time is not in between the range it should return false. Is there any inbuild PHP function to check this or we will have to write a new function??


Simply use strtotime to convert the two times into unix timestamps:

A sample function could look like:

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
}


The function to check if date/time is within the range:

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));

}

Call function with parameters start date/time, end date/time, today's date/time. Below parameters gets function to check if today's date/time is between 10am on the 26th of June 2012 and noon on that same day.

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

精彩评论

暂无评论...
验证码 换一张
取 消