2017-01-01 2 views
0

나는 테이블에 수요일 수요일 달력, 일정 만 표시해야합니다를 작성했는데, 내가 변경 시도수요일 캘린더를 얻을 수 있지만, 1월없는

달력에서 회의를 쓸 수 있어야한다 :

strotime('-1 month') 

하지만 캘린더가 표시되지 않습니다.

function getMittwoch($y, $m) 
{ 
    return new DatePeriod(
     new DateTime("first wednesday of $y-$m"), 
     DateInterval::createFromDateString('next wednesday'), 
     new DateTime("last day of $y-$m") 
    ); 
} 

작년에 작동했지만 지금은 그렇지 않습니다. 달력에는 12 월까지 2 월 만 표시되지만 1 월은 누락됩니다.

for($monat=date('m', strtotime('0 month'))+1; $monat<13; $monat++){ 
     foreach (getMittwoch(date('Y'), $monat) as $mittwoch) { 
      $tagWert = $mittwoch->format("dmY"); 

2017에 대해 어떻게 변경해야합니까?

답변

0

내 스크립트는 주어진 날짜의 모든 수요일을 발견 할 것이다 :

function getWednesday($y,$m){ 
    $inmonth=date('t', mktime(0, 0, 0, $m, 1, $y)); ; 

    for($i=0;$i<$inmonth;$i++){ 
     $d=$i+1; 
     $timestamp = strtotime("$y-$m-$d"); 
     $day = date('w', $timestamp); 
     if($day==3){ 
      echo "Wednesday found - $y-$m-$d<br>"; 
     } 
    } 
} 

getWednesday(2017,1); 

출력은 다음과 같습니다

Wednesday found - 2017-1-4 
Wednesday found - 2017-1-11 
Wednesday found - 2017-1-18 
Wednesday found - 2017-1-25 

당신은 물론 다른 뭔가 에코을 교체 할 수 있습니다. 도움이되기를 바랍니다.

드레이

+0

감사합니다. – egokyniker

+0

한 가지 문제가 해결되었습니다. 또 다른 질문이 있습니다. 이제 내 테이블에 올해의 수요일 (2017)이 표시됩니다. 그러나 나는 그 테이블이 항상 다음 6 개월의 수요일을 보여주기를 바랍니다. 그래서 10 월에는 2018 년 2 월에 수요일 모임을 구할 수 있습니다. 어떻게 할 수 있습니까? – egokyniker

0

다음 달에 수요일을 보여줍니다 다음 변화 :

function getWednesday($y,$m,$next=1){ 
    for ($x=0; $x < $next; $x++) { 
      $inmonth=date('t', mktime(0, 0, 0, $m, 1, $y)); ; 

      for($i=0;$i<$inmonth;$i++){ 
       $d=$i+1; 
       $timestamp = strtotime("$y-$m-$d"); 
       $day = date('w', $timestamp); 

       if($day==3){ 
        echo "Wednesday found - $y-$m-$d<br>"; 
       } 
      } 

      if($m==12){ 
       $y++; 
       $m=0; 
      } 
    $m++; 
    } 
} 

getWednesday ($ y를, $ m, $ 다음)를

  • $ y를 - 올해 계산을 시작하는
  • $ m - 시작하는 달
  • $ 다음 - 다음 달까지 표시 할 다음 달 t 사용, 한 달 간)
0

미안하지만 나는 몰랐다. 나는 그것을 내 스크립트에 구현하고 싶다. 그래서 내 캘린더는 다음 6 개월의 다음 수요일에 2018을 포함해야한다고 표시해야합니다. 현재 날짜부터 시작해야합니다. 답변

for($monat=date('m', strtotime('month')); $monat<7; $monat++){ 
 
     foreach (getMittwoch(date('Y'), $monat) as $mittwoch) { 
 
\t \t \t 
 
      $tagWert = $mittwoch->format("dmY"); 
 
      echo "<tr>"; 
 
      echo "<td>"; 
 
      echo "<input type=\"radio\" name=\"tag\" value=\"$tagWert\" />". $mittwoch->format("l, d.m.Y"); 
 
      echo "</td>"; 
 
      echo "<td>"; 
 
      echo getVeranstaltung($tagWert)['veranstaltung']; 
 
      echo "</td>"; 
 
      echo "</tr>"; 
 
     } 
 
    }

관련 문제