-1

フォームからmm/dd/yyyyフォーマットに2つの日付を取得しています。ここで、これら 2 つの日付を同等の 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." ) ";
}

適切にフォーマットされたクエリが他のコードで生成され、結果が得られます。しかし、私の問題は、2 つの日付を入力するときです。01/07/2013 and 31/07/2013DBからレコードをフェッチすると、実際にレコードが提供されますfrom date 01/07/2013 to date 30/07/2013。実際には までの記録が期待されます31/07/2013。私が日付を記入すると、私の要件に従って01/08/2013レコードが返されます。31/07/2013つまり、手段はto date1日遅れています。この問題を解決するのを手伝ってくれる人はいますか? 前もって感謝します。もう 1 つ重要なことは、user_reg_dateDB のフィールドにはすべての値が UNIX タイムスタンプ形式で含まれていることです。

4

1 に答える 1