0

我需要进行验证以检查“last_update”是否在 3 小时或更短时间内完成。

我有这个 PHP 代码:

if($user['last_update'] < strtotime("3 hours")) {
    $msg .= "You can only register every 3 hour.";
}

怎么可能做到这一点?

4

4 回答 4

3

如果$user['last_update']是日期格式,那么

if (time() - strtotime($user['last_update']) < 3 * 3600) {
  //..
}
于 2013-09-24T10:57:02.613 回答
1

您可以使用它来获取当前时间减去 3 小时:

$dateTime = new DateTime();
$dateTime->modify("-3 hours");

$time = $dateTime->format("H:m:s");
$date = $dateTime->format("Y-m-d");

然后,您可以将日期和时间变量与上次更新进行比较。

于 2013-09-24T10:57:45.020 回答
1

像这样试试。包裹你的$user['last_update']内心strtotime()

if(strtotime($user['last_update']) < strtotime("3 hours")) {
    $msg .= "You can only register every 3 hour.";
}
于 2013-09-24T10:56:05.807 回答
0

strtotime()

返回秒。

如果您的日期存储为 UNIX 时间戳,那么您的代码是正确的。如果您的日期存储为 TIMESTAMP,则代码如下:

$three_hours = date('Y-m-d H:i:s', strtotime('3 hours'));
if ($user['last_update'] < $three_hours) {
    $msg .= "You can only register every 3 hour.";
}
于 2013-09-24T10:58:11.507 回答