我将两个日期从表单转换为mm/dd/yyyy
格式。现在,我将这两个日期转换为等效的UNIX时间戳值,并创建一个SQL查询来从数据库中获取属于该范围的记录。这方面的小代码snippett如下所示:
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
并从DB中获取记录时,它实际上是在给记录from date 01/07/2013 to date 30/07/2013
。事实上,它预计会给出直到31/07/2013
的记录。如果我把迄今为止的记录设置为01/08/2013
,那么它将根据我的要求返回到31/07/2013
。短平均值to date
落后一天。有人能帮我解决这个问题吗?提前谢谢。更重要的是,DB中的字段user_reg_date
包含UNIX时间戳格式的所有值。
尝试使用
$mk_to_time = mktime(23, 59, 59, $tm, $td, $ty);