Php 查询自昨天起具有时间戳的数据
目前我检查我的网站每天收到多少新成员;像这样:Php 查询自昨天起具有时间戳的数据,php,date,time,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时间戳中 我的问题是,我如何才能使上述查询从昨天开始?(前一天有多少新成员)
$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天')
,但效果不太好。也许您可以使用DateTime
:
$yesterday = new DateTime("yesterday");
应该有用
SELECT * from users WHERE DATE(FROM_UNIXTIME(createtime)) = DATE(DATE_ADD(Now(), INTERVAL '-1' DAY))
未经测试,但可能有效。由于您使用的是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;";
$starttime=date('U',strotime('昨日00:00:00');
$endtime=date('U',strottime('昨日23:59:59');
$query=“从createtime>=$starttime和createtime的用户中选择*考虑到这一点,使用datetime数据类型虽然方便,但在使用它时仍需要考虑效率。在昨天上午12点和今天上午12点的时候获取UNIX时间戳会更有效,并且选择那些介于2个日期转换之间的所有时间,所以如果你这样做的话,你可以考虑另一种方式。如果您有一个小的查询,这个方法应该可以。您应该将它编辑到您的答案中,而不是将其作为注释。
$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;";