如何在PHP中从UNIX时间戳中获取正确的日期


How to fetch the correct date from UNIX timestamp in PHP?

我将两个日期从表单转换为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);