使用自昨天起的时间戳查询数据

时间:2012-08-11 11:10:10

标签: php date time

目前我查看我的网站每天收到的新会员数量;像这样:

$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 个答案:

答案 0 :(得分:0)

也许您可以使用DateTime

$yesterday = new DateTime("yesterday");

答案 1 :(得分:0)

strtotime('yesterday');

应该工作

答案 2 :(得分:0)

SELECT * from users WHERE DATE(FROM_UNIXTIME(createtime)) = DATE(DATE_ADD(Now(), INTERVAL '-1' DAY))

未经测试,但可能有效。

答案 3 :(得分: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语句,但有时它不会检索所有数据。