2017-11-22 1 views
0

가 여기 내 12 즉 다음 달 값을 가져 오는 코드를하지만 난이어떻게

<?php 
$month = '11'; 
$month = strtotime("+1 month", $month); 
echo $month; 
?> 

을 시도하고이 결과를 가지고 01

<?php 
    $month = '11'; 
    $month = Date("m", strtotime($month. " +1 month")); 
    echo $month; 
    ?> 

이 출력 특정 달부터 다음 달 얻을

2678411 

도와주세요

답변

5

당신은 날짜()와 strtotime으로 사용하려는 경우() 그것이 작동하는 달에 완전한 날짜를 추가 할 수 있습니다.

$month = '11'; 
$month = Date("m", strtotime("2017-" . $month . "-01" . " +1 month")); 
echo $month; 

https://3v4l.org/IJBKU

이 코드는 모든 입력 달 및 미래에 어떤 년 작동

완전히 일정 변경 언젠가 않는.
무엇이든 한 달 입력 한 출력됩니다 다음 달 수

+0

잘 작동하지만 2017과 01을 왜 사용하고 있습니까? 설명해주십시오. – dan

+2

정확한 날짜를 얻으려면. 한 달 또는 한 달 만 사용하면 PHP가 선택한 달에 어떤 시간 또는 날을 알 수 없습니다. 1 월 31 일을 선택하고 한 달을 추가한다고 가정 해보십시오. 출력은 3 월이됩니다. 2 월에는 31 일이 없기 때문에. 그러므로 나는 진정한 날짜를 선택한다. – Andreas

+0

이 코드는 숫자를 출력하지 않으므로 앞에 0이있는 문자열을 출력하여 2 바이트 길이로 만듭니다. 만약 누군가가'declare (strict_types = 1);을 설정하면'month' * string *은 에러를 일으킬 것입니다. – Code4R7

2

strtotime()으로 :

$nextmonth = date('n', strtotime('2000-' . $month . '-01 + 1 month')); // returns string 

strtotime()없이 :

$nextmonth = $month % 12 + 1; // returns integer 
+0

내가 strtotime으로 기능 – dan

+0

를 사용하여 추가 할 날짜와 한 strtotime를 사용하여 바로 다음 달 https://eval.in/905233 – dan

+0

작동하지 않는다 https://3v4l.org/Y7BE8 – Andreas

2

나는이 하나 라이너 같은 date_create()을 사용합니다 :

<?php 
echo date_create()->modify('+1 month')->format('m'); 
?> 
+0

그건'11'을 고려하지 않습니다. 물론 OP만으로 충분할 수도 있습니다. – jeroen

+0

당신의 오른쪽, 메신저 OP는 단순히 영원히 11 싶지 않다, 그렇지 않으면 OP 그냥뿐만 아니라 ''사용할 수 있습니다. –

+0

사용자의 입력 월에 1을 더해야합니다 – dan

1
$month = 1; 
echo $nextMonth = $month === 12 ? 1 : ++$month; 

또는 단순히

echo date('m', strtotime('+1 month'));