-1

我正在将两个日期从表格转换为mm/dd/yyyy格式。现在,我将这两个日期转换为等效的 UNIX 时间戳值,并创建一个 SQL 查询以从数据库中获取该范围内的记录。对此的小代码片段如下所示:

if($request['from_date']!='' && $request['to_date']!='') {
            $from_date  = clean($request['from_date']);
            $to_date    = clean($request['to_date']);       

            list($fd, $fm, $fy) = explode('/', $from_date);
            list($td, $tm, $ty) = explode('/', $to_date);

            $mk_from_time = mktime(0, 0, 0, $fm, $fd, $fy);
            $mk_to_time   = mktime(0, 0, 0, $tm, $td, $ty);
$date_range = " ( user_reg_date BETWEEN ".$mk_from_time." AND ".$mk_to_time." ) ";
}

使用其他代码生成格式正确的查询并给我结果。但我的问题是当我输入两个日期时。01/07/2013 and 31/07/2013并从数据库中获取记录,然后它实际上是在提供记录from date 01/07/2013 to date 30/07/2013。实际上它预计将提供记录直到31/07/2013。如果我把日期设置为那么它会根据我的要求01/08/2013返回记录。31/07/2013简而言之to date,就是落后一天。谁能帮我解决这个问题?提前致谢。更重要的一件事是user_reg_dateDB 中的字段包含 UNIX Timestamp 格式的所有值。

4

1 回答 1

1

尝试使用

$mk_to_time   = mktime(23, 59, 59, $tm, $td, $ty);
于 2013-07-08T11:36:51.887 回答