我从表单到 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
并从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时间戳格式的所有值 .
1 回答
尝试使用
$ mk_to_time = mktime(23,59,59,$ tm,$ td,$ ty);