날짜비교하기 질문드립니다.

날짜비교하기 질문드립니다.

QA

날짜비교하기 질문드립니다.

본문

기존에 g5_member 테이블에 있는 mb_intercept_date 컬럼의 데이터타입 형태를

varchar(8) -> datetime 으로 변경하였는데요 그런후 mb_intercept_date 시간까지 입력이 되도록 설정을 했습니다. 근데 문제는 아래처럼 //원래소스 주석처리된 비교문으로 하면 잘 되는데

이젠 시간값가지 비교해야 하므로 아래처럼 수정하였더니 로그인도 안되고 alert도 안뜨고 그냥 아예 먹통이 되버립니다.

혹시 제가 비교문을 잘못 작성하였나요? 이거때문에 다른곳이 문제인줄 알고 벌써 2일째 삽질하고 있다가 오늘 우연히 원인을 찾았습니다-_-...

 

시간은 echo로 찍어봤지만 모두 정확합니다.

 

* mb_intercept_date 저는 이 컬럼을 차단일이 아닌 설정해둔 날짜를 오늘 날짜와 비교 체크했을때  기간이 만료되었는가를 비교하기 위해 쓰고있습니다.

 


$mb_end_date = date('YmdHis', strtotime($mb['mb_intercept_date'])); //설정시간
$mb_now_date = date('YmdHis', strtotime(G5_SERVER_TIME)); //현재 시간
 
// 원래 소스 if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {

if ($mb_now_date >= $mb_end_date) {
    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);
    alert(_t('회원님의 아이디는 접근이 금지되어 있습니다.').'\\n'._t('처리일').' : '.$date);
}

이 질문에 댓글 쓰기 :

답변 4

common.php 파일 353줄에도 해당 소스가 있습니다.

이 부분을 수정하지 않으신 것 같네요..

아래 구문을 추가해주세요..

if ($mb['mb_intercept_date'] && $mb_now_date >= $mb_end_date) {

$mb['mb_intercept_date'] 데이터가 있다는 것은
해당 아이디가 접근 차단이 되었다는 건데요..
설정된 날짜와 시간이 현재 시간보다 이전이라면,
당연히 접근이 안되는게 맞는 겁니다.

아뇨 앞서 말씀드린것처럼 저는 이 mb_intercept_date 데이터를 차단일이 아닌 설정해둔 날짜를 오늘 날짜와 비교 체크했을때  기간이 만료되었는가를 비교하기 위해 쓰고있습니다.

한마디로 $mb['mb_intercept_date'] 날짜/시간이 오늘 날짜/시간보다 작으면 저 조건문이 실행이 되어야 합니다.

조건문은 분명 맞는데 왜 자꾸 먹통이되는지 모르겠습니다.
로그인시 login_check.php 말고 또 mb_intercept_date 데이터를 검증하는 부분이 있는건지...

시간은 echo로 찍어봤지만 모두 정확합니다.<--- 2019-06-30 23:59:59 이런 형태로 나온다면

1,2행은 필요 없음

 

6행

if( G5_TIME_YMDHIS > $mb['mb_intercept_date']){

7행 \\1\\2\\3 일 처럼 띄워야 합니다.

 

8행 : 먹통 원인은 여기 같아 보입니다

alert(_t('회원님의 ---> alert( '회원님의 ~~ ._t('처리일'--> alert( '처리일'

_t 라는 함수가 어떤 것인지 모르겠지만 필요 없어보이고 정의된 함수가 없다면 당연히 오류입니다

 

네 우선 정확히 값을 비교해보기 위해 1,2 행은 임시로 만들어둔 변수구요.
8행은 사실상 조건문이 주석처리된 걸로 진행될때는 문제없이 잰행되는 구문라인 입니다.
저도 그냥 빌더를 다운받아 쓰는거라 사실상 _t 가 뭔진 모르겠지만 저건 그냥 평문으로 작성해도
잘 작성되는 alert 호출 형태입니다.

alert( ~~~~, '../index.php'); 마지막에 추가해보세요 index페이지로 이동 하는지

그리고 mb_intercept_date에는 항상 값이 입력 되어잇는 상태인가요?
값이 없으면 접근금지가 맞나요?

네 어차피 회원가입후 로그인을 할때 관리자 승인을 거쳐야 로그인이 가능합니다.
근데 관리자 승인시 mb_intercept_date 데이터에 필수로 값이 입력어집니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,335 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT