フォームから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/2013
DBからレコードをフェッチすると、実際にレコードが提供されますfrom date 01/07/2013 to date 30/07/2013
。実際には までの記録が期待されます31/07/2013
。私が日付を記入すると、私の要件に従って01/08/2013
レコードが返されます。31/07/2013
つまり、手段はto date
1日遅れています。この問題を解決するのを手伝ってくれる人はいますか? 前もって感謝します。もう 1 つ重要なことは、user_reg_date
DB のフィールドにはすべての値が UNIX タイムスタンプ形式で含まれていることです。