この種の日付オブジェクトが与えられた場合date("m/d/Y", strtotime($numerical." ".$day." of ".date("F")))
たとえば、「8月の最初の月曜日」であるyyyy/mm/dd/yyyyの日を与える場合があります。たとえば、
この日付が今日の日付より大きいか、小さいか、または等しいかをどのように判断できますか?
この形式で機能し、日付オブジェクト間で比較できるnow()
メソッドが必要です
まだdate()<date()を試していません。しかし、私はそれがうまくいくとは思いません
どんな洞察も感謝
タイムスタンプを比較します。
_if (strtotime($numerical." ".$day." of ".date("F")) < time()) {
// older
} else {
// newer
}
_
strtotime()
は1.1.1970からの秒数を返し、time()
も返すため、これは可能です。そしてPHPでは整数を簡単に比較できます...
最初はあなたの質問を誤解しました。あなたが言うように比較で日付objectを使用しているのではなく、日付の文字列表現(date
によって作成された)を使用しています)。
日付のほとんどすべての文字列表現を現在のtimeと比較するのは簡単です。
$now = time();
$date = '2015/03/12'; #could be (almost) any string date
if (strtotime($date) > $now) {
#$date occurs in the future
} else {
#$date occurs now or in the past
}
日付文字列と現在のdayを比較するのは少しだけ複雑です。これを行う1つの方法を次に示します。
$today_start = strtotime('today');
$today_end = strtotime('tomorrow');
$date = '2015/03/12'; #could be (almost) any string date
$date_timestamp = strtotime($date);
if ($date_timestamp >= $today_end) {
#$date occurs after today
} elseif ($date_timestamp < $today_start) {
#$date occurs before today
} else {
#$date occurs today
}
time
を使用して現在時刻を秒に下げるのではなく、今日の日付をブックエンドする2つの真夜中のタイムスタンプを計算します。次に、それらと比較します。
これを行うには、より賢い方法があります(YYYY/MM/DD
日付と今日の表現)ですが、この例は最初の例にうまく基づいています。