그누보드 [G4] 회원 가입시 생년월일 달력이 1970년 이전으로 가니 오류가 발생할때
페이지 정보
본문
윈도우 서버에서 APM으로 사용할때
회원 가입시 생년월일 달력이 1970년 이전으로 가니 오류가 발생합니다.
<오류 내용>
Warning: mktime(): Windows does not support negative values for this function in c:\apm_setup\htdocs\gnuboard\bbs\calendar.php on line 67
Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in c:\apm_setup\htdocs\gnuboard\bbs\calendar.php on line 68
그누보드 / bbs / calendar.php 에서 아래의 내용을 추가 및 수정합니다.
// 해당월의 1일
$mktime = mktime(0,0,0,$mm,1,$yyyy);
$dt = getdate(strtotime(date("Y-m-1", $mktime)));
위의 2줄을 아래와 같이 수정합니다.
// 1970년 회원가입 오류 해결을 위한 함수 선언 ( 작성자 : 해결사 님 )
function mk_time($m,$d,$y){
if($y<1970){
$mk_time=mktime(9,0,0,1,1,1970);
$i=1969;
if(checkdate($m,$d,$y)){
do{
for($j=12;$j>=1;$j--){
if($m==$j && $y==$i){
for($k=31;$k>=$d;$k--){
if(checkdate($j,$k,$i)) {
$time++;
} else { //
}
} //for k
break;
} else {
for($z=31;$z>=1;$z--){
if(checkdate($j,$z,$i)) {
$time++;
} else { //
} //if
} //for z
}
} //for j
$i--;
}while($i>=$y);
return $mk_time-(($time)*24*3600);//24*3600=1day
} else {
return $mk_time;
}
} elseif($y>2038){
$mk_time=mktime(9,0,0,1,1,2038);
$i=2039;
if(checkdate($m,$d,$y)){
do{
for($j=12;$j>=1;$j--){
if($m==$j && $y==$i){
for($k=31;$k>=$d;$k--){
if(checkdate($j,$k,$i)) {
$time++;
} else { //
}
} //for k
break;
} else {
for($z=31;$z>=1;$z--){
if(checkdate($j,$z,$i)) {
$time++;
} else { //
} //if
} //for z
}
} //for j
$i++;
}while($i>=$y);
return $mk_time-(($time)*24*3600);//24*3600=1day
} else {
return $mk_time;
}
} else {//if 2038
return mktime(0,0,0,$m,$d,$y);
}
}
// 해당월의 1일
$mktime = mk_time($mm,1,$yyyy);
$dt = '1';
자료출처
http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=9697
댓글목록
등록된 댓글이 없습니다.