現在の時刻がその日の午後2時より前であれば、PHPにチェックインする必要があります。
以前に日付でstrtotime
を使用してこれを実行しましたが、今回は時刻のみであるため、明らかに毎日0.00にリセットされ、ブール値はfalse
からtrue
にリセットされます。
if (current_time < 2pm) {
// do this
}
if (date('H') < 14) {
$pre2pm = true;
}
日付関数の詳細については、 PHPマニュアル を参照してください。次の時間フォーマッターを使用しました。
H = 24時間形式の時間(00から23)
試してください:
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
あなたはただ時間を渡すことができます
if (time() < strtotime('2 pm')) {
//not yet 2 pm
}
または、日付も明示的に渡します
if (time() < strtotime('2 pm ' . date('d-m-Y'))) {
//not yet 2 pm
}
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)
どのバージョンの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
}
この関数は、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;
}
time()
、date()
、およびstrtotime()
関数を使用します。
if(time() > strtotime(date('Y-m-d').' 14:00') {
//...
}
時刻が午後2時30分より前かどうかを確認する場合は、次のコードセグメントを試してください。
if (date('H') < 14.30) {
$pre2pm = true;
}else{
$pre2pm = false;
}
で試す
if( time() < mktime(14, 0, 0, date("n"), date("j"), date("Y")) ) {
// do this
}