回答:
PHP> = 5.2.2なのでDateTime
、次のようにクラスを使用できます。
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
DateTimeコンストラクターに渡された文字列は、これらのルールに従って解析されます。
time
とstrtotime
機能を使用することも可能であることに注意してください。元の回答を参照してください。
new DateTime('2010-05-15')
は単なる例であり、以前に初期化した任意のDateTimeオブジェクトにすることができます。
$object
DateTimeオブジェクトであると仮定して、私は使用しましたが、正しくif (new DateTime() > $object) {}
動作しません。しかし、if (time() > $bject->getTimeStamp()) {}
正しく動作します。@Salman A
比較演算子の関数を実装するDateTimeクラスもあります。
// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');
if ( $dtA > $dtB ) {
echo 'dtA > dtB';
}
else {
echo 'dtA <= dtB';
}
PHPのstrtotime
-functionをチェックして、設定した日付/時刻をタイムスタンプに変換します。http://php.net/manual/en/function.strtotime.php
strtotime
日付/時刻の形式を正しく処理できない場合( "4:00 PM"はおそらく機能しますが、 "at 4PM"は機能しません)、substr
形式を解析/修正してタイムスタンプを取得するなど、文字列関数を使用する必要があります。別の機能、例えばmktime
。
次に、結果のタイムスタンプを現在の日付/時刻(if ($calulated_timestamp > time()) { /* date in the future */ }
)と比較して、設定された日付/時刻が過去か未来かを確認します。
日付/時間関数に関するPHP-docを読んで、行き詰まったらソースコードの一部をここに戻すことをお勧めします。
date_default_timezone_set('Asia/Kolkata');
$curDateTime = date("Y-m-d H:i:s");
$myDate = date("Y-m-d H:i:s", strtotime("2018-06-26 16:15:33"));
if($myDate < $curDateTime){
echo "active";exit;
}else{
echo "inactive";exit;
}
$myDate
と同じようには機能しませんstring (0) ""
。