0

現在、私のWebサイトが1日に受け取った新しいメンバーの数を確認しています。このような:

$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

Unix タイムスタンプを使用しているため、1 日の 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 に答える
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 に答える