【发布时间】:2014-10-30 18:56:54
【问题描述】:
我的数据库中有一个名为 users_added 的表,在该表中,我有一个名为 expire 的字段,用于存储 unix 时间戳。
我的问题是,我如何循环 x 天数,并查看用户还剩多少天(直到到期日期到期)
例子:
1 day remaining:
10 users
2 days remaining:
0 users
3 days remaining
50 users
等等等等。
图形示例:
这是我目前所拥有的:
// Start date
$date = date("Y-m-d",$time);
// End date
$end_date = date('Y-m-d', strtotime($date . " +10 days"));
while (strtotime($date) <= strtotime($end_date)){
$stmt = $dbh->prepare("SELECT * FROM users_added WHERE user_by=:user AND expire<:time");
$stmt->bindParam(":user",$userdata['username']);
$stmt->bindParam(":time",$end_date);
$stmt->execute();
$expireData = $stmt->fetchAll();
$remaining = $date-$end_date;
echo "$remaining";
echo "day(s) remaining:";
$date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}
因为我被困住了,所以我真的不能再进一步了。我不知道如何实现这一点。
【问题讨论】:
-
GROUP BY CEIL( (expire - UNIX_TIMESTAMP()) / 86400)?不过,我通常会避免在表中使用 unix 时间戳。 (您可能需要添加WHERE expire > UNIX_TIMESTAMP()以避免过期用户显示负数)。
标签: php mysql time pdo unix-timestamp