0

如果从数据库中获取的值来自过去 30 天,我需要检查 php。

这些值的格式如下:

2012-03-19 05:00:32

如何才能做到这一点?

4

3 回答 3

2

您可以使用strtotime将其转换为 unix 时间戳。

$db_date = "2012-03-19 05:00:32";
if (time() - strtotime($db_date) <= 30 * 86400) {
  //...
}
于 2012-06-04T03:29:02.013 回答
1
$date = '2012-03-19 05:00:32';
if (strtotime($date) >= strtotime('-30 days')) {
    // do something
}

请参阅strtotime() 参考

于 2012-06-04T03:44:13.560 回答
0

您可以在 PHP 中执行此操作,但这意味着通过日期/时间系统来回将字符串处理回日期值:

$within_30 = ((strtotime('2012-03-19 05:00:32') + 30*86400) > time());

假设您使用的是 MySQL,您可以直接在查询中执行此操作,并节省一些时间转换:

SELECT ((yourtimefield + INTERVAL 30 DAY) > now()) AS within_30 ...
于 2012-06-04T03:29:35.953 回答