2

次のような値を格納する DATETIME 列があります。

2012-05-20 14:00:00

$row['Date']日付を現在の日付 (時間は重要ではありません) と比較して、今日より古いかどうかを確認するにはどうすればよいですか?

if($row['Date'] < ...) {
echo 'date has passed'
}
4

5 に答える 5

8

SQL に比較させてみませんか?

SELECT *, DATE(`Date`) < DATE(NOW()) AS is_old ...

次に、日付が今日より前の場合は 1、そうでない場合は 0 である「is_old」という列があります。したがって、PHP で行う必要があるのは、次のようなことだけです。

if ($row['is_old']) {
    // handle the old date case
} 
于 2012-05-28T00:12:47.660 に答える
1
strtotime($row['Date']) < time() + 60 * 60 * 24;

time() に余分な日 (60 秒 * 60 分 * 24 時間) を追加して、要求された時間/分/秒を効果的に無視します。

それはとても簡単です:Dオフセットなども非常に簡単に追加できます:

http://www.php.net/manual/en/function.time.php

http://php.net/manual/en/function.strtotime.php

于 2012-05-27T23:28:41.043 に答える
0
if( $row['Date'] < date('Y-m-d') ) {
 echo 'date has passed';
}
于 2012-05-27T23:29:52.220 に答える
0

適切な方法は、MySQL 日付文字列を、PHP が時間値を理解する形式に変換することです。

$date = strtotime( $row['date'] );

次に、現在の時刻と比較できます。

if ( $phpdate < time() ) {
  ...
}
于 2012-05-27T23:34:26.553 に答える