gpt4 book ai didi

php - 选择时间与 future 日期相同的数据

转载 作者:可可西里 更新时间:2023-11-01 07:48:48 24 4
gpt4 key购买 nike

我的数据库中有一个表,名为 users_added,在该表中,我有一个名为 expire 的字段,它存储一个 unix 时间戳。

我的问题是,我如何遍历 x 天数,并查看用户还剩多少天(直到满足到期日期)

例子:

    1 day remaining:
10 users

2 days remaining:
0 users

3 days remaining
50 users

等等等等

图形示例:

enter image description here

这是我目前所拥有的:

    // 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)));
}

我真的无法从这里走得更远,因为我被困住了。我不知道如何实现这一目标。

最佳答案

这对我有用:

mysql> CREATE TABLE users (expiry INT UNSIGNED);
Query OK, 0 rows affected (0.12 sec)

mysql> INSERT INTO users (expiry) VALUES
(UNIX_TIMESTAMP() + 1000),
(UNIX_TIMESTAMP() + 12348),
(UNIX_TIMESTAMP() + 89284),
(UNIX_TIMESTAMP() + 99438),
(UNIX_TIMESTAMP() + 333552),
(UNIX_TIMESTAMP() + 883718),
(UNIX_TIMESTAMP() + 994872);
Query OK, 7 rows affected (0.05 sec)
Records: 7 Duplicates: 0 Warnings: 0

mysql> SELECT
ROUND((expiry - UNIX_TIMESTAMP()) / 86400) AS days,
COUNT(*) AS cnt
FROM users
WHERE expiry > UNIX_TIMESTAMP()
GROUP BY days;
+------+-----+
| days | cnt |
+------+-----+
| 0 | 2 |
| 1 | 2 |
| 4 | 1 |
| 10 | 1 |
| 12 | 1 |
+------+-----+
5 rows in set (0.00 sec)

mysql>

只需让数据库完成工作即可; subtracting当前时间戳的到期时间戳为您提供到期前的秒数,并将其除以 86400 为您提供天数。然后你可以group按天数计算结果,以获取每一天的计数。

关于php - 选择时间与 future 日期相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com