0

私は予定表を持っていて、現在の日付よりも後のすべての予定をユーザーに表示して、ユーザーがそれらをキャンセルできるようにしたい...私はこのクエリを持っています...

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND CONCAT(date,' ',start)>NOW()");
while($row = mysql_fetch_assoc($result))
{

echo '<div class="record" id="record-',$row['id'],'">
    <a href="?delete=',$row['id'],'" class="delete">Delete</a>
    <strong>',$row['date'], $row['start'], $row['end'],'</strong>
  </div>';

}

これはまだ現在よりも低い日付を示しています...おそらくタイムゾーンエラーかそのようなものですか?

これは私のテーブルです...

   date     duration    start     end
2013-02-28  01:00:00  12:00:00  13:00:00
2013-02-28  01:00:00  03:00:00  04:00:00
2013-02-27  01:00:00  21:00:00  22:00:00
2013-02-27  01:00:00  20:00:00  21:00:00
2013-02-28  01:00:00  20:00:00  21:00:00
2013-02-28  01:00:00  01:00:00  02:00:00
2013-02-28  01:00:00  09:00:00  10:00:00
2013-02-28  01:00:00  02:00:00  03:00:00
2013-03-01  01:00:00  00:00:00  01:00:00
2013-02-28  01:00:00  21:00:00  22:00:00
2013-02-28  01:00:00  22:00:00  23:00:00
2013-03-01  01:00:00  02:00:00  03:00:00

エコーからこれを取得します...

Delete 2013-02-28  12:00:00  13:00:00
Delete 2013-02-28  20:00:00  21:00:00
Delete 2013-03-01  00:00:00  01:00:00
Delete 2013-02-28  21:00:00  22:00:00
Delete 2013-02-28  22:00:00  23:00:00
Delete 2013-03-01  02:00:00  03:00:00   

したがって、現在の時刻が現在のように 2013-02-28 15:25:00 である場合、2013-02-28 12:00:00 13:00:00 より低い日付を表示することは想定されていません。

4

2 に答える 2

0

文字列を有効な日付値に変換するには、STR_TO_DATE() 関数が必要です。

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND STR_TO_DATE(CONCAT(date,' ',start))>NOW()");
于 2013-02-28T14:35:16.280 に答える
0

dateはタイプDateであり、両方ともstartタイプ列endのようなものだと思います。連結を行う必要がないように、列と列の両方に型をChar使用する必要があります。今、あなたはただ行うことができます.DateTimestartendstart > NOW()

于 2013-02-28T14:28:10.823 に答える