테스트 사이트 - 개발 중인 베타 버전입니다

매우 가능성없는 일이지만 php 날짜함수 관련 질문해요. 채택완료

클베 10년 전 조회 3,351

특정 날짜에서 7일을 더한 날짜를 구한다고 할 때

 

방법이 다양한데요.

 

strtotime('2015-02-12') + 86400 * 7 이렇게 하거나

 

strtotime('+7 day', strtotime('2015-02-12')) 이렇게도 되구요.

 

근데 두번째 경우에는 함수가 2번이나 사용하기 때문에 (단점은 아니지만)

첫번째 경우를 대부분 사용할 것 같은데요.

 

근데 질문은

절대 그럴일은 없지만

 

저 86400 이라는 숫자가 바뀌게 된다면 인데요...

 

1일이 86400초라서 저렇게 사용한건데

 

1일의 초가 바뀐다면 86400 을 사용한 모든 코드를 바꿔야 하는 문제점이 생길텐데요.

 

그럴리는 없겠지만,

 

정확한 계산을 위해서는 두번째 방법이 안전하지 않을까 생각이 되거든요.

 

전문가님들은 86400을 직접 쓰는것에 대해서 어떻게 생각하는지 궁금합니다.

그렇다고 86400 을 변수나 php상수에 집어넣어서 사용하기에는 대단한 숫자는 아닌 것 같긴 한데 말이죠.

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
10년 전

근데 두번째 경우에는 함수가 2번이나 사용하기 때문에 (단점은 아니지만)

--------->  strtotime("2015-02-12 +7 day"); 두번 사용할 필요 없습니다

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

p
10년 전

php strtotime 이 편리는 하지만 용도에 맞진 않습니다.

아래의 링크 부분을 참조하면 좋습니다.

http://blog.munilive.com/strtotime%EC%97%90%EC%84%9C-1-months-%EB%98%90%EB%8A%94-1-month-ago%EB%8A%94-30%EC%9D%BC-%EC%9D%B4%EC%A0%84%EC%9D%B4-%EC%95%84%EB%8B%88%EB%8B%A4/">http://blog.munilive.com/strtotime%EC%97%90%EC%84%9C-1-months-%EB%98%90%EB%8A%94-1-month-ago%EB%8A%94-30%EC%9D%BC-%EC%9D%B4%EC%A0%84%EC%9D%B4-%EC%95%84%EB%8B%88%EB%8B%A4/

그러므로 이런부분은 DB에서 처리하는게 좋습니다.

 

오늘 : 

WHERE START_AT=CURDATE(); 

 

내일 : 

WHERE START_AT=CURDATE() + INTERVAL 1 DAY; 

 

어제 : 

WHERE START_AT=CURDATE() - INTERVAL 1 DAY; 

 

DB 를 사용하지 않는다면 PHP의 date class 를 쓰는게 더 좋겠지요 :)

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

변수에 담어넣고 유지보수하기좋게하면될거같네요

 

만약에값이변한다고해도 변수값 한 번만 수정해주면 되잖아요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

2번을 추천해 드립니다..

1달후로 계산을 할경우 28/30/31일의 경우가 각기 다르기 때문에  

1Month로 사용을 할수가 있습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인