2017-01-08 11 views
1

検索中にaを使い果たしても答えが見つかりませんでした。本当に簡単な質問です。MYSQLとPHPを使用して、今月の日付を曜日に変換する

私のデータベースには、私は文字列dayOfWeekを持っています。

私はこれを使用して、週に何週間のイベントが予定されているかを追跡します。通常、PHPを使用してdayOfWeekを現在の日に一致させ、正しいイベントを表示します。

私がやりたいことは、毎週の定期的なイベントの将来の日付のリストを作成する予定です。

たとえば、イベントが火曜日に行われ、2017年2月に火曜日が7日、14日、21日、28日に開催された場合。私はそのように表示するためにPHPを使用したいと思います。

私はstrtotime()が逆を行うのに使用されていることを知っていますが、日付から日を見つけますが、反対は簡単に行うことができますか?

申し訳ありませんが私の質問は、言葉や情報が不足しています。

+1

したがって、あなたのデータベースに火曜日がある場合、火曜日が発生するか、または特定の月だけ将来のすべての日付を探していますか? – learner

+0

@learnerこれらの出力の両方に使用します。将来すべての日付を取得できたら、いくつかの変数(次の4つの日付、ある月のすべての日付など)に基づいて出力を制限することができます。 –

答えて

1

ユースケースは2017年2月、火曜日

$n=date('t',strtotime("2017-02-01")); // find no of days in this month 
$dates=array(); 
for ($i=1;$i<=$n;$i++){ 
    $day=date("D",strtotime("2017-02-".$i)); //find weekdays 

    if($day=="Tue"){ 
     $dates[]="2017-02-".$i; 
    } 
} 
print_r($dates); 

http://phpfiddle.org/main/code/s8wq-xx44

1

あなたはこれを行うことができます:

// The day of the week. 
$dayOfEvent = row['day']; 
// Say, you wanted the next 5 weeks. 
$numberOfWeeks = 5; 
$tempDate = date(U); 
$counter = 0; 

do{ 
    $tempDate = $tempDate + 86,164; 
    if(date('D', $tempDay) == 'Tue'){ 
     echo date('l jS \of F Y', $tempDay); 
     $counter++; 
    } 
}while($counter < $numberOfWeeks); 
1

のための現在の週の日の日付を見つけるための最初の試みを。その後、それに7日の倍数を加え続けます。

<?php 
    // $timestamp = now(); 

    for ($i=0; $i < 7; $i++) { 

     $days = $i." days"; 
     $t = date('Y-m-d', strtotime($days)); 
     $dayOfTheDay = date("D",strtotime($t)); 
     if ($dayOfTheDay == day from table) 
     { 
      $current_date = $t; 
      break; 
     } 
    } 

    for ($i=0; $i < 200; $i++) { 
     in this loop add 7 days to current_date 
    } 
?>