我正在将两个日期从表格转换为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_date
DB 中的字段包含 UNIX Timestamp 格式的所有值。