0

目前我检查我的网站每天有多少新会员;像这样:

$daystart = strtotime("00:00:00");
$newusers = mysql_num_rows(mysql_query("SELECT * FROM users WHERE createtime>'$daystart' OR createtime='$daystart'"));

createtime行是int(11),时间存储在 unix 时间戳中。

我的问题是,我怎样才能使上述查询从昨天开始?(前一天有多少新成员)

我试过了,strotime('-1 day')但效果不佳。

4

4 回答 4

0

也许你可以使用DateTime

$yesterday = new DateTime("yesterday");
于 2012-08-11T11:13:37.717 回答
0
strtotime('yesterday');

应该管用

于 2012-08-11T11:13:51.713 回答
0
SELECT * from users WHERE DATE(FROM_UNIXTIME(createtime)) = DATE(DATE_ADD(Now(), INTERVAL '-1' DAY))

未经测试,但可能有效。

于 2012-08-11T11:15:19.840 回答
0

由于您使用的是 Unix 时间戳,因此您可以使用一天的 00:00:00 和 23:59:59 的时间戳,并获取其间添加的所有内容。

$starttime = date('U', strtotime('Yesterday 00:00:00'));
$endtime = date('U', strtotime('Yesterday 23:59:59'));
$query = "SELECT * FROM users WHERE createtime >= $starttime AND createtime <= $endtime;";

您也可以使用 SQL BETWEEN 语句,但有时它不会检索所有数据。

于 2012-08-11T12:44:28.463 回答