Home » Php » date – PHP Check if current time is before specified time

date – PHP Check if current time is before specified time

Posted by: admin April 23, 2020 Leave a comment

Questions:

I need to check in PHP if the current time is before 2pm that day.

I’ve done this with strtotime on dates before, however this time it’s with a time only, so obviously at 0.00 each day the time will reset, and the boolean will reset from false to true.

if (current_time < 2pm) {
   // do this
}
How to&Answers:
if (date('H') < 14) {
   $pre2pm = true;
}

For more information about the date function please see the PHP manual. I have used the following time formatter:

H = 24-hour format of an hour (00 to 23)

Answer:

Try:

if(date("Hi") < "1400") {
}

See: http://php.net/manual/en/function.date.php

H   24-hour format of an hour with leading zeros    00 through 23
i   Minutes with leading zeros                      00 to 59

Answer:

You could just pass in the time

if (time() < strtotime('2 pm')) {
   //not yet 2 pm
}

Or pass in the date explicitly as well

if (time() < strtotime('2 pm ' . date('d-m-Y'))) {
   //not yet 2 pm
}

Answer:

Use 24 hour time to get round the problem like so:

$time = 1400;
$current_time = (int) date('Hi');
if($current_time < $time) {
    // do stuff
}

So 2PM equates to 14:00 in 24 hour time. If we remove the colon from the time then we can evaluate it as an integer in our comparison.

For more information about the date function please see the PHP manual. I have used the following time formatters:

H = 24-hour format of an hour (00 to 23)

i = Minutes with leading zeros (00 to 59)

Answer:

You haven’t told us which version of PHP you’re running, although, assuming it’s PHP 5.2.2+ than you should be able do it like:

$now = new DateTime();
$twoPm = new DateTime();
$twoPm->setTime(14,0); // 2:00 PM

then just ask:

if ( $now < $twoPm ){ // such comparison exists in PHP >= 5.2.2
    // do this
}

otherwise, if you’re using one of older version (say, 5.0) this should do the trick (and is much simplier):

$now = time();
$twoPm = mktime(14); // first argument is HOUR

if ( $now < $twoPm ){
    // do this
}

Answer:

If you want to check whether the time is before 2.30 pm ,you can try the following code segment .

if (date('H') < 14.30) {
   $pre2pm = true;   
}else{
   $pre2pm = false;
}

Answer:

Try with

if( time() < mktime(14, 0, 0, date("n"), date("j"), date("Y")) ) {

// do this

}

Answer:

This function will check if it’s between hours in EST by accepting 2 params, arrays with the hour and am/pm…

    /**
     * Check if between hours array(12,'pm'), array(2,'pm')
     */
    function is_between_hours($h1 = array(), $h2 = array())
    {
        date_default_timezone_set('US/Eastern');
        $est_hour = date('H');

        $h1 = ($h1[1] == 'am') ? $h1[0] : $h1[0]+12;
        $h1 = ($h1 === 24) ? 12 : $h1;

        $h2 = ($h2[1] == 'am') ? $h2[0] : $h2[0]+12;
        $h2 = ($h2 === 24) ? 12 : $h2;

        if ( $est_hour >= $h1 && $est_hour <= ($h2-1) )
            return true;

        return false;
    }

Answer:

Use time(), date() and strtotime() functions:

if(time() > strtotime(date('Y-m-d').' 14:00') {
    //...
}