与PHP和Mysql的日期比较


Date comparison with PHP and Mysql

我有一个日期字段类型为date的表。

我要做的是在表内的日期和今天的日期之间进行比较。如果表中的日期是昨天,则插入今天的日期。

我不确定的是如何在数据库中插入数据,这样我就可以进行比较。这是我想做的"

$d = time();
$x = mysql_querry("SELECT date FROM table where id = $id", $con);
while($y = myqsl_fetch_array($x)){
    $oldTime = $y['date']; 
}
if ($oldTime < $d){
$i = mysql_querry("INSERT INTO table (date) VALUES (CURDATE()) ", $con);
}

所以,我不确定$oldTime and $d是否可以这样比较,但我希望你们能明白我的意思。

任何想法?

谢谢

您不能这样做,因为CURDATE()函数返回的日期格式为2011-11-11,而time()返回的是自1970年1月1日00:00:00 GMT以来的秒数。

无论如何,您可以使用date()函数更改time()的格式,使其看起来像CURDATE():

date('Y-m-d', time())

或者更好的是,要获得当前日期,您可以使用这一行:

date('Y-m-d')

总之,你可以这样做:

if( strtotime($oldTime) < strtotime(date('Y-m-d')) )

或者更好:

if( strtotime($oldTime) < strtotime('now') )

要比较日期,您可以使用strtotime($date);其中日期可以是时间(),mysql日期或日期('Y-m-d');字符串