날짜비교하기 질문드립니다.
본문
기존에 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) {
시간은 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 라는 함수가 어떤 것인지 모르겠지만 필요 없어보이고 정의된 함수가 없다면 당연히 오류입니다
좋은소스 감사합니다