2013-03-12 2 views
0

내년의 모든 월요일의 날짜가있는 양식의 드롭 다운 목록을 채워야합니까?PHP/MySQL - 모든 월요일의 날짜 목록 표시

가장 좋은 방법은 무엇입니까? MySQL 테이블이 날짜로 채워지거나 MySQL을 필요로하지 않고 이러한 날짜를 생성하는 더 똑똑한 방법이 있습니까?

원하는 출력이 될 것 같은 뭔가 :

enter image description here

, 11 Mar 13의 값이 될 것이다 이미지의 첫 번째 옵션에 대한 그래서 그냥 날짜를 개시하는 것 선택된 옵션의 값.

바보 같은 질문 인 경우 도움과 사과에 감사드립니다.

+0

해야한다 먼저 무언가를 시도해 보았습니다. 당신의 문제에 대한 어떤 해결책을 시도하고 어떤 문제가 있었습니까. 이것은 또한 사람들이 당신의 질문에 대답 할 때 당신이했을지도 모르는 똑같은 실수를 되풀이하지 못하게하거나, 당신이 버리려고 시도하는 것을 막습니다. – Ben

+2

http://stackoverflow.com/questions/2045736/getting-all-dates-for-mondays-and-tuesdays-for-the-next-year의 가능한 복제본은 무엇입니까? –

+1

가장 좋은 방법은 PHP에서 그것을하고 데이터베이스를 사용하지 않는 것입니다. 나는 당신이 데이터베이스에 날짜를 넣는 것을 어떻게 생각하게 만들지 모르겠다. – Popnoodles

답변

3

편집 : 사람들이 도움이 그것의 도움이있는 동안 단순히 년이 아닌 시작 날짜를 전달 지원하기 위해 수정 드롭 다운으로 출력

function getDays($year, $startMonth=1, $startDay=1, $dayOfWeek='monday') { 
    $start = new DateTime(
     sprintf('%04d-%02d-%02d', $year, $startMonth, $startDay) 
    ); 
    $start->modify($dayOfWeek); 
    $end = new DateTime(
     sprintf('%04d-12-31', $year) 
    ); 
    $end->modify('+1 day'); 
    $interval = new DateInterval('P1W'); 
    $period = new DatePeriod($start, $interval, $end); 

    foreach ($period as $dt) { 
     echo $dt->format("d/m/Y") . '<br />'; 
    } 
} 

getDays(2013, 3, 12, 'monday'); 

포맷 간단한 운동

1

PHP 다음에 간단히 DateTime::add 메서드를 사용할 수 있습니다. 그런 다음 1 년 중 첫 번째 월요일에이 방법을 사용하여 7 일을 52 번 추가 할 수 있습니다. 그게 당신에게 모든 월요일을 줄 것입니다. 6 일을 추가하면 날짜가 표시됩니다.

1

이 코드를 출력하면 내가 가지고있는이

<select id="date" name="date"> 
    <? 
    for($i = 0; $i <= 365; $i ++){ 
     $startdate = strtotime("today + $i day"); 
     $enddate = strtotime("today + " . ($i + 6) . " day"); 
     if(date('D', $startdate) == 'Mon'){ 
      echo '<option value="' . date('d-m-Y', $startdate) . '">' .date('d M y', $startdate) . " to " . date('d M y', $enddate) . "</option>"; 
     } 
    } 
    ?> 
</select> 

처럼에 HTML을 추가해야 당신이 드롭 다운 목록 등이 디스플레이를 위해

for($i = 0; $i <= 365; $i ++){ 
    $startdate = strtotime("today + $i day"); 
    $enddate = strtotime("today + " . ($i + 6) . " day"); 
    if(date('D', $startdate) == 'Mon'){ 
     echo date('d M y', $startdate) . " to " . date('d M y', $enddate) . "\n"; 
    } 
} 

을 원하는 날짜 목록 선택 옵션 인 value에 월요일의 날짜가 인 경우 양식을 제출할 때 한 번 선택한 월요일이됩니다. 그래서 27 May 13 to 02 Jun 13 행을 선택하고 양식을 제출하면 양식의 다른 쪽 끝의 PHP 파일에 변수 $_POST['date']이 있고 값은 27-05-2013이됩니다.