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

时间:2013-07-08 11:24:18

标签: php unix-timestamp mktime

我从表单到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落后一天。任何人都可以帮我解决这个问题吗?提前致谢。另一个重要的事情是DB中的字段user_reg_date包含UNIX时间戳格式的所有值。

1 个答案:

答案 0 :(得分:1)

尝试使用

$ mk_to_time = mktime(23,59,59,$ tm,$ td,$ ty);