0

次のようなSQLを作成しています。

SELECT * FROM POST
WHERE date between :date1 and :date2

Date2 は常に今日の日付になります PHP time(); (UNIX 形式)。ここで、date2 から 7 日 (1 週間) を引いて、date2 から 1 か月を引く必要があります。

(これはフォーム上でユーザーが選択します)。

問題は、UNIX の日付で操作を実行できないことです。

$date2 = time();
$date1 = $_GET['fromDate'];

$query = "SELECT * FROM POST
          WHERE date between :date1 and :date2";

HTMLフォーム

 select id=fromDate>
    <option value=<?php echo time()-604800>WEEK</option>
/select>
4

2 に答える 2

1
$today = time();
$oneWeekAgo = time() - (60 * 60 * 24 * 7); // 60 seconds, 60 minutes, 24 hours, 7 days
$oneMonthAgo = time() - (60 * 60 * 24 * 30); // 60 seconds, 60 minutes, 24 hours, 30 days

またはより正確には $oneMonthAgo の場合:

$date = date_create(); // get DateTime object of today
date_modify($date, "-1 month"); // 1 month ago
$oneMonthAgo = date_timestamp_get($date); // get unix time
于 2013-04-09T08:28:09.250 に答える
1

何を試しましたか?

$t=time();
# this would output current date
echo(date("D F d Y",$t));
# minus 7 days converted to seconds
$t -= 7*24*60*60;
# this would print the original $t minus 7 days
echo(date("D F d Y",$t));
于 2013-04-09T08:28:22.223 に答える