PHP自动更改变量日期+1天


PHP automatically change variable date +1 day

我正在写一个电子邮件应用程序,它有一个图形统计页面,图表显示了用户每天发送多少电子邮件,我可以得到图表的数据,每天只有当我硬编码它,但我想知道如何使一个自动机制。

这是一个查询,我使用从数据库获取数据:

查询:

 $today = "SELECT COUNT(tbl_template_log.user_id) FROM tbl_template_log ";
            $today .= "WHERE tbl_template_log.user_id='$id'";
            //$today .= " AND tbl_template_log.send_date > '2014-05-21' ";
            //$today .= "AND tbl_template_log.send_date < '2014-05-21'";

但是我想有变量,而不是像$start和$finish这样的日期,每天重新调整,所以用户可以看到一个实际的每日数据,而不需要我手动更改数据....?

my PHP class:

class statsToday{
function con()
{
    require_once('connect.php');
    $DB = new dbConnect();
    return $DB->connect();
    }
    public $start;
    public $finish;
    public function getStats($user){
            $user = "SELECT user_id FROM tbl_user WHERE ott_email='$user'";
            $query = mysqli_query($this->con(), $user);
            $count = mysqli_num_rows($query);
            if($count == 1){
             while($row = mysqli_fetch_assoc($query)){
                 $id = $row['user_id'];
             }
            $today = "SELECT COUNT(tbl_template_log.user_id) FROM tbl_template_log ";
            $today .= "WHERE tbl_template_log.user_id='$id'";
            //$today .= " AND tbl_template_log.send_date > '$start' ";
            //$today .= "AND tbl_template_log.send_date < '$finihs''";
            $query_today = mysqli_query($this->con(), $today);
            $today = mysqli_fetch_row($query_today);
            echo $today[0];
        }
    }
}
谁能提出一个解决方案?

如果你只想要"今天",你可以使用mysql内置的date函数:

$today = "SELECT COUNT(tbl_template_log.user_id) FROM tbl_template_log ";
$today .= "WHERE tbl_template_log.user_id='$id'";
$today .= " AND DATE(send_date) = DATE(NOW())";

或者在最后一周做所有的事情:

$today = "SELECT COUNT(tbl_template_log.user_id) FROM tbl_template_log ";
$today .= "WHERE tbl_template_log.user_id='$id'";
$today .= " AND tbl_template_log.send_date >= '" . date('Y-m-d', strtotime('-1 week')) . "' ";
$today .= "AND tbl_template_log.send_date =< '" . date('Y-m-d', strtotime('today')) . "'";

另一种方法,如果您在send_date字段上索引数据库,则更容易使用:

$today = "SELECT COUNT(*) 
  FROM tbl_template_log
  WHERE user_id='$id'
  AND send_date BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY";