2016-04-21 3 views
0

mysqlクエリを使用してphpで渡された2日後にイベントを非表示にしようとしています。日付オプションは2つあります。開始日、および終了日。私はクエリを動作させる方法を理解していないようです。2日後にイベントを隠そうとしています

$query->select('*'); 
    $query->from('#__events_items'); 
    $query->where('date2 >= "'.$today.'"'); 
    $query->where('date2 <= "'.$sixmths.'"'); 
    $query->where('state = 1'); 
    $query->order('date1 asc'); 

私は

$today  = @date('Y-m-d'); 
$enddate  = @date('Y-m-d',(strtotime(@date('Y-m-d')."+ 2 days"))); 

を試みた。しかし、明らかに終了日がすべてのヘルプをいただければ幸い終了日.. $に以上ではありません!

$today = date('Y-m-d', strtotime('-2 days')); 

をかそこらのようなあなたのクエリを変更:

+1

質問を理解してから、現在はイベントが渡されるとすぐにイベントが隠れています。あれは正しいですか? – trex005

+0

はい、現在、イベントが通過すると隠れています。渡されてから2日後に非表示にする必要があります。 –

+0

@date( 'Y-m-d');のエラー抑制演算子 '@'の目的は何ですか? –

答えて

2

あなたはそうのように、今日変更することができますいずれか

$query->select('*'); 
$query->from('#__events_items'); 
$query->where('date2 >= "'.$today.'" - INTERVAL 2 DAY'); 
$query->where('date2 <= "'.$sixmths.'"'); 
$query->where('state = 1'); 
$query->order('date1 asc'); 

は私が表現する二日前の今日$を持つので、第二は、おそらくより良い形だと思います厄介な自己文書化コードになります。

+0

ありがとう、それは働いています! :D私は笑うことができるときに答えを受け入れます –

関連する問題