Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询自昨天起具有时间戳的数据_Php_Date_Time - Fatal编程技术网

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;";