PHP的MySQL日期比较

时间:2013-10-09 22:41:32

标签: php mysql datetime

我非常感谢你的帮助。

我有一个包含Datetime字段的mysql数据库。在那个领域,我有一个特定的日期和时间, 例如:

2013-10-03 22:28

然后我有一个PHP脚本,它从$_GET命令获取特定的日期和时间,值分别为:年,月,日,小时,分钟。

从这个GET我创建了一个Date,如下所示:

$datum = $year."-".$month."-".$day." ".$hour.":".$minute.":".$seconds;
$date = date('Y-m-d H:i',strtotime($datum));

我现在需要做的是以某种方式将我创建的这个新日期与数据库中的最后一个日期值(最新的)进行比较。关键是我比较之后我想检查数据库中的最后一个值是否超过5分钟,然后才进行特定操作(插入新行),如果数据库中的最后一个日期是否超过5分钟什么都不做。

3 个答案:

答案 0 :(得分:0)

使用“从tblname中选择max(datetime_field)”来获取Datetime字段的最新值。

答案 1 :(得分:0)

$now = new DateTime();
$dateFromDB = new DateTime($someValueFromYourDataBase);

// subtract 5 minutes from now and compare with the stored timestamp
if ($now->sub(new DateInterval('PT5i') > $dateFromDB) {
    // database timestamp is older - do something
}

答案 2 :(得分:0)

您可以像这样使用SQL:

select count(*) from `table` where `datefield` >= '$date'

$ date可以像

一样计算
 $date = date('Y-m-d H:i', strtotime($datum) - 5*60);

5 * 60 - 这是5分钟

出于性能原因,我建议您将索引添加到datefield并更改选择如下:

select `datefield` from `table` where `datefield` >= '$date' limit 1