0

非常感谢您的帮助。

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

2013-10-03 22:28

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

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

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

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

4

3 回答 3

0

使用“select max(datetime_field) from tblname”获取 Datetime 字段的最新值。

于 2013-10-09T22:46:15.247 回答
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
}
于 2013-10-09T22:47:05.567 回答
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
于 2013-10-09T22:48:03.147 回答