web-dev-qa-db-ja.com

PHP現在の時刻が指定された時刻より前かどうかを確認する

現在の時刻がその日の午後2時より前であれば、PHPにチェックインする必要があります。

以前に日付でstrtotimeを使用してこれを実行しましたが、今回は時刻のみであるため、明らかに毎日0.00にリセットされ、ブール値はfalseからtrueにリセットされます。

if (current_time < 2pm) {
   // do this
}
31
Adam Moss
if (date('H') < 14) {
   $pre2pm = true;
}

日付関数の詳細については、 PHPマニュアル を参照してください。次の時間フォーマッターを使用しました。

H = 24時間形式の時間(00から23)

68
Tom

試してください:

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

参照: 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
24

あなたはただ時間を渡すことができます

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

または、日付も明示的に渡します

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

24時間の時間を使用して、次のように問題を回避します。

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

したがって、午後2時は24時間で14:00に相当します。時間からコロンを削除すると、比較で整数として評価できます。

日付関数の詳細については、 PHPマニュアル を参照してください。以下の時間フォーマッタを使用しました。

H = 24時間形式の時間(00から23)

i =先行ゼロ付きの分(00から59)

4
Treffynnon

どのバージョンのPHPを実行しているのかを教えていないが、PHP 5.2.2+ :

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

それからちょうど尋ねます:

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

それ以外、古いバージョン(5.0など)のいずれかを使用している場合、これはトリックを実行する必要があります(はるかに単純です)。

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

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

この関数は、2つのパラメーター、時間とam/pmの配列を受け入れることにより、ESTの時間の間にあるかどうかを確認します...

    /**
     * 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;
    }
0

time()date()、およびstrtotime()関数を使用します。

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

時刻が午後2時30分より前かどうかを確認する場合は、次のコードセグメントを試してください。

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

で試す

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

// do this

}
0
Repox