PHP Check if current time is before specified time

怎甘沉沦 提交于 2019-11-29 06:07:52

问题


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
}

回答1:


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)




回答2:


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



回答3:


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
}



回答4:


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)




回答5:


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
}



回答6:


Try with

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

// do this

}



回答7:


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



回答8:


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

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



回答9:


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


来源:https://stackoverflow.com/questions/8475019/php-check-if-current-time-is-before-specified-time

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!