2014-10-24 4 views
2

안녕하세요, 알고 싶습니다.PHP 선택 옵션 2 개월 전 (월)

어떻게 나는이 같은 출력 뭔가가 필요 현재 월 두 달 (31)

에 1-15, 16로 할당받을 수 있나요 :

<option value="2014-09-15">September 15, 2014</option> 
<option value="2014-09-30">September 30, 2014</option> 
<option value="2014-10-15">October 15, 2014</option> 
<option value="2014-10-30">October 30, 2014</option> 

나는 샘플 코드 만 출력 12개월

이 예를 들어
<?php 

for ($i = 0; $i <= 11; ++$i) 
{ 
$time = strtotime(sprintf('+%d months', $i)); 
$value = date('m', $time); 
$label = date('F', $time); 

//if month is set stay on that month 

if($month==$value) 
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label); 
} 
else 
{printf('<option value="%s">%s</option>', $value, $label);} 
} 

?> 

답변

1

사용 기능 날짜, ...

http://de2.php.net/manual/en/function.date.php

우선 몇 가지 이론 : 31, 30, 28/29이 따라 어떠했는지

$currentMonth = date("t", time()); 

이 반환 달에 주어진 시간 매개 변수. time()은 "now"매개 변수가없는 unix-timestamp를 반환하므로 현재 달입니다.

다음 달의 일수를 원하면 다시 time()으로 초를 추가하면됩니다. 다음 달에 도달하기에 충분합니다. 따라서 32 일이면 어떤 경우 에든 정확한 다음 달 ...

(!) 참고 : 1 시간 3600 초 가지고 * 24 = 1 일 지금 당신에게 전체 솔루션을 제시


86400

$nextMonth = date("t", time() + (86400 * 32)); //+32 days will guarantee next month 
을 가지고, 거의 전체 출력이 될 수 있다는 것을 의미합니다 다음과 같이 생성 :

$timeNow = time(); 
$timeNextMonth = $timeNow + (86400 * 32); //+ 32 days 

echo ' 
    <select name="date"> 
     <option value="' . date("Y-m-15", $timeNow) . '">' . date("F 15, Y", $timeNow) . '</option> 
     <option value="' . date("Y-m-t", $timeNow) . '">' . date("F t, Y", $timeNow) . '</option> 
     <option value="' . date("Y-m-15", $timeNextMonth) . '">' . date("F 15, Y", $timeNextMonth) . '</option> 
     <option value="' . date("Y-m-t", $timeNextMonth) . '">' . date("F t, Y", $timeNextMonth) . '</option> 
    </select> 
'; 
+0

위대함 좋습니다 – freddy

1

:

$currentMonth = date("n"); 
for($i=1;$i<3;$i++) { 
    $monthNum = $currentMonth - $i; 
    if($monthNum<1) 
     $monthNum = 12 - $monthNum; 
    $monthName = date("F", mktime(0, 0, 0, $monthNum, 10)); 
    //here use $monthNum and $monthName for output 
    print "<option>......</option>"; 
} 
,691 더 쉽게 당신에게 루프를 아끼지
+0

이것도 좋습니다 .. 할 수있는 옵션 – freddy