0

我有一个users在我的 MySQL 数据库中命名的表。此表中有一个列名user_reg_date(bigint(12)),用于存储该用户的注册日期。

此列以 UNIX Timestamp 格式存储注册日期。我是 PHP 中这个 UNIX 时间戳和日期操作的新手。现在我的要求是我想将当前日期传递给一个函数并获取注册日期为当前日期的用户数(即今天注册的用户数)。

我不知道如何将当前日期传递给函数并获取注册日期为当前日期的用户数。我在下面给出我的 PHP 函数代码。

/*The argument `$todays_date` I'm passing is dummy, please guide me how to pass the date also*/
    function GetRegisteredUsersCount($todays_date) { 
        $sql  = " SELECT count(*) as registered_users_count FROM ".TBL_USERS;
        $sql .= " WHERE user_reg_date ='".$todays_date."' ";

        $this->mDb->Query( $sql);
        $data = $this->mDb->FetchArray(MYSQL_FETCH_SINGLE);

        return $data;    
      }
4

2 回答 2

2

由于您的日期存储为整数,因此您需要使用从今天开始到(不包括)第二天开始之间的范围进行查询。

$today = strtotime('today');
$tomorrow = strtotime('+1 day', $today);

$sql .= sprintf(
    " WHERE user_reg_date >= %d AND user_reg_date < %d", 
    $today, 
    $tomorrow
);

也可以看看:strtotime()

顺便说一句,建议在使用 64 位整数的平台上运行它。

于 2013-10-21T08:03:12.667 回答
0

您应该将 user_reg_date(bigint(12)) 字段类型更改为时间戳并将其默认设置为 CURRENT_TIMESTAMP。每当新用户注册时,它将自动选择当前日期时间。当您想知道今天有多少用户注册时,只需点击查询:-

$sql  = "SELECT count(*) as registered_users_count from tb_users where datediff(CURDATE(),DATE(user_reg_date)) =0"
于 2013-10-21T08:09:12.973 回答