WEB언어/PHP

PHP 다음달 구하기 mktime(0,0,0,date("m")+1,15,date("Y")))

saltdoll 2016. 8. 1. 10:42
반응형

다음달 / 이전달 구하기

 

아래의 해당 함수는 월에 대한 이슈가 발생 합니다.

1월29일부터 1월30일까지는 Feb(3월)로 넘어가는 오류가 발생 (ex:2017년1월30일=>2017년3월2일로 나옵니다.)

 

아래의 strtotime()함수보다는 아래방식이 더 안정적인 것 같습니다.

date("Y년 m월 d일",mktime(0,0,0,date("m")-1,15,date("Y"))) ; 이전달 15일

date("Y년 m월 d일",mktime(0,0,0,date("m")+1,15,date("Y"))) ; 다음달 15일

 

 

PHP date()함수를 이용한 다음달 구하기 입니다 .  (해당 방식은 1월과 3월에 오류가 있습니다.  +31 days, Feb뛰어 넘네요.)

 

 

strtotime을 이용한 방법

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

 

[ 다음달의 오늘 날짜 구하기 ]

You can use PHP's strtotime() function:

// One month from today
$date = date('Y-m-d', strtotime('+1 month'));

// One month from a specific date
$date = date('Y-m-d', strtotime('+1 month', strtotime('2015-01-01')));

Just note that +1 month is not always calculated intuitively. It appears to always add the number of days that exist in the current month.

Current Date  | +1 month
-----------------------------------------------------
2015-01-01    | 2015-02-01   (+31 days)
2015-01-15    | 2015-02-15   (+31 days)
2015-01-30    | 2015-03-02   (+31 days, skips Feb)
2015-01-31    | 2015-03-03   (+31 days, skips Feb)
2015-02-15    | 2015-03-15   (+28 days)
2015-03-31    | 2015-05-01   (+31 days, skips April)
2015-12-31    | 2016-01-31   (+31 days)

Some other date/time intervals that you can use:

$date = date('Y-m-d'); // Initial date string to use in calculation

$date = date('Y-m-d', strtotime('+1 day', strtotime($date)));
$date = date('Y-m-d', strtotime('+1 week', strtotime($date)));
$date = date('Y-m-d', strtotime('+2 week', strtotime($date)));
$date = date('Y-m-d', strtotime('+1 month', strtotime($date)));//skips Feb, April error
$date = date('Y-m-d', strtotime('+30 days', strtotime($date)));

 

 

 

 

[ 날짜 정보 정리 ]

http://byeffort.tistory.com/8 

 

* PHP 날짜 처리 모음

 

 
 - 현재시간 : 년월일시분초 : 20080702132629
   $strDate = date("YmdHms");
 
 - 이번 달 : 년월 : 200807
   $strDate = date("Ym");
 
 - 오늘 + 10일
   $strDate   = date("Ymd", mktime(0,0,0, intval(date('m')),intval(date('d')) + 10 ,intval(date('Y'))));
 
 - 이번 달 1일
   $strDate   = date("Ymd", mktime(0, 0, 0, intval(date('m')), 1, intval(date('Y'))  ));
 
 - 이번 달 말일
   $strDate   = date("Ymd", mktime(0, 0, 0, intval(date('m'))+1, 0, intval(date('Y'))  ));
 
 - 지난 달
   $strDate   = date("Ym", mktime(0, 0, 0, intval(date('m'))-1, intval(date('d')), intval(date('Y'))  ));
 
 - 지난 달 1일
   $strDate   = date("Ymd", mktime(0, 0, 0, intval(date('m'))-1, 1, intval(date('Y'))  ));
 
 - 지난 달 말일
   $strDate   = date("Ymd", mktime(0, 0, 0, intval(date('m')), 0, intval(date('Y'))  ));
 
 - 6개월 전 1일
   $strDate   = date("Ymd", mktime(0, 0, 0, intval(date('m'))-6, 1, intval(date('Y'))  )); //해당방법은 문제없음
 

 

 

반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)