티스토리 뷰

반응형

php date()함수를 사용해서 날짜 계산하기, 이해하면 너무 쉬움...

언제나 쉽게 프로그램을 할 수는 없지만, 원리를 알고 사용한다면 정말 멋진 프로그램을 노력여하에 따라 만들 수 있지요.

날짜를 여러가지 형태로 조작(?) 응용하려면 날짜에 대한 연산을 생각해 볼 수 있는데요,

날짜를 마음대로 만질 수 있다면 어느새 우리는 멋진 프로그래머가 되어있을지도 모르겠네요.

 

<?php 

  $datetmp='2019-07-27';

   echo date('Y년 m월 d일',$datetmp);

?>

이렇게 실행하면 에러가 날 것입니다. 컴퓨터가 기억하는 날짜의 형태는 유닉스 타임으로 기억할거예요.

그래서 strtotime()함수가 필요합니다. 이걸로 변환 후 연산하고 다시 데이터 형식에 맞게 표현해주면 되는데요,

아무래도 컴퓨터가 알아먹을 수 있는 형태로 바꿔주고 다시 해독하고 하는 암호화 복호화 같은 작업입니다.

위의 예문에서 중간에 $datetmp=strtotime($datetmp); 이 문장이 들어간다면 에러가 해결되는 것이지요.

 

그럼, 날짜를 더하고 빼고 하는 연산 방법은?

1) 하루를 더하고 싶다?

그러면 $datetmp=strtotime($datetmp.'+1 days');

이렇게 하면 감쪽같이 원하는 하루가 더해서 나옵니다. 엄청신기합니다. 처음엔 말이죠.

결과적으로 +,- 연산자와 뒤에 표현은

"year, days,month,hour,second"으로 하면되는데,

유일하게 days만 복수네요... 만든사람이 이렇게 정의한 듯 싶어요~~ 약간 엉뚱하죠?

아뭏튼 실제 프로그램에 적용해서 성공했어요.

if($todate=="")
{
	$todate=substr(date("Y-m-d",time()),0,4) . "-12-31" ;
	$Transtodate=strtotime($todate.'+1 days');
	$Transtodate=date("Y-m-d",$Transtodate);
	Console_log($Transtodate); 		
}
    else
	{
	$Transtodate=strtotime($todate.'+1 days');
	$Transtodate=date("Y-m-d",$Transtodate);
	Console_log($Transtodate); 		
	}
		  

 

 

반응형
댓글