날짜 포맷과 뺄셈, 마감진행중버튼 질문입니다.

날짜 포맷과 뺄셈, 마감진행중버튼 질문입니다.

QA

날짜 포맷과 뺄셈, 마감진행중버튼 질문입니다.

답변 1

본문

안녕하세요.

 

종료날에 버튼이 자동으로 마감으로 바뀌는 것과

종료날이 되지 않았을땐 진행중 버튼으로 계속 표시되는 질문입니다.

 

어제  $current_time, $notice_time을 20160710와 같은 날짜 포맷으로 바꾸어

진행중과 마감 버튼이 날짜를 바꿀때마다(글 수정, 새글 작성) 

정상적으로 제 일을 하는걸 확인, 성공했습니다.

중요한 부분인지라 여러번 확인했었고요..

 

근데 실수로 덮었는지.. 20160710 포맷이 2016-07-10포맷으로 되고 

진행중이 안되고 계속 마감이라고만 뜨더라고요.

 

성공한 페이지는 아직도 닫지않았는데 아무 도움이 안되네요..

저장페이지를 통째 덮었는지 스킨을 재설치해도 아까처럼 진행중버튼이 뜨질 않습니다..ㅠ

이게 어제 성공했던것입니다..ㅠ 

(성공 했던건 다른 레이아웃인데 배포자분이 동일해서 기본적인 코드는 똑같습니다..

어차피 성공했던것도 지금 먹통이지만 말이지요...ㅠㅠ)

3c3cd8e4bfd12e1920d0a56a0ae04110_1468171846_1902.png 

 

 

아무튼 날짜 포맷을 전부 Ymd로 바꿔도 안되고..

$notice_time를 date();랑 해봐도 안되고.. 

$list[$i][wr_10]를 갖고 포맷을 수정하면 날짜가 리셋되고..(1970년..;) 

2016-07-10 포맷으로 하면 뺀 값이 너무 길고.. 

기본적으로 위 방법으로 다양하게 시도해보았으며

검색해서 나오는것들 여러개 시도한것 같습니다..

 

단순한 날짜포멧 변경으로 뺀 값이 0이 되는 것도 성공했지만 이게 문제가 

$notice_time , $current_time 둘 다 같은 날짜.. 20160711로 되서  

$notice_time 는 제가 설정한 날짜가 아닌 $current_time 날짜로 뜹니다. 

 

아무튼 보통은 계속 마감문구가 뜨거나

else의  echo "<span style='color:#666666;'>{$list[$i][wr_10]}</span>"; (날짜)만 뜹니다..

진행중 문구가 안뜹니다..

 

 

낮에 성공했을땐 무척 간단한 방법으로 성공했거든요.

코드에 지금 하는것처럼 뭘 더했던건 아니였던것 같은데..

그땐 별거 검색하지 않고 했거든요.. 

쉽게 해결했는데 다시 직면하니 초저녁부터 이것저것 수정해봐도 안되네요..ㅠ

이것만 붙들고 있습니다..ㅠ

 

아래가 다운받았던 코드입니다.

파일이 여러개라 너무나 길어서 날짜 관련부분만 오렸습니다.. 

도움 부탁드리겠습니다.ㅠ

 

 

-

가입한지 얼마 안되서 댓글을 못적을수도 있습니다.ㅠ

이번이 3번째 글인데 3번째 글이 질문글도 해당하는지 몰라서요..

댓글이랑 글 합해서 하루에 1개밖에 못쓰더라고요..ㅠ

소셜로그인이라 비밀번호가 없는지 정보수정이 안되서 쪽지도 못보내는 불편한점이..ㅠ
-

 


jQuery(function($){
	$.datepicker.regional['ko'] = {
		closeText: '닫기',
		prevText: '이전달',
		nextText: '다음달',
		currentText: '오늘',
		monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
		'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
		monthNamesShort: ['1월','2월','3월','4월','5월','6월',
		'7월','8월','9월','10월','11월','12월'],
		dayNames: ['일','월','화','수','목','금','토'],
		dayNamesShort: ['일','월','화','수','목','금','토'],
		dayNamesMin: ['일','월','화','수','목','금','토'],
		weekHeader: 'Wk',
		dateFormat: 'yy-mm-dd',
		firstDay: 0,
		isRTL: false,
		showMonthAfterYear: true,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['ko']);
 
    $('#wr_4, #wr_5, #wr_10').datepicker({
        numberOfMonths: 1,	//달력 개월수
        //showOn: 'button',	//달력 버튼없이 readonly
		buttonImage: '<?=$g4[path]?>/img/calendar.gif',
		buttonImageOnly: true,
        buttonText: "달력",
        changeMonth: true,
		changeYear: true,
        showButtonPanel: true,
        yearRange: 'c-99:c+99',
        maxDate: '+730d'
    }); 
});
 
 
 
 <a href="javascript:win_calendar('wr_10', document.getElementById('wr_10').value, '');">
		<input class=m_text type=text id=wr_10 name='wr_10' size=8 maxlength=8 minlength=8 required numeric itemname='마감날짜' value="<?=$write['wr_10']?>" readonly title='달력 - 날짜를 선택하세요.'>
		<img src='<?=$board_skin_path?>/img/calendar.gif' border=0 align=absmiddle title='달력 - 날짜를 선택하세요'></a> 
 
 
 
 
<?
//////////////////////////////////////////////////////
// 현재시간
$current_time = time(); 
$current_time = date("Ymd", $current_time);
// notice time
 
$notice_time  = $list[$i][wr_10]; 
$last_time = $notice_time - $current_time ; 
 
 
echo '<xmp>c['.$current_time.'] n['.$notice_time.'] l['.$last_time."]</xmp>n"; // 
//남은 날이 -  이면, 공지 기간이 끝나면..
if($last_time < 0){ 
 echo "<img src='$board_skin_path/img/btn_end_icon.gif' border='0' align='absmiddle' title='종료'>";
} 
else{
 echo "<span style='color:#666666;'>{$list[$i][wr_10]}</span>"; 
}
 
//////////////////////////////////////////////////////
    
  ?>

이 질문에 댓글 쓰기 :

답변 1

제가 그누보드5에서 사용하는 방법입니다.

lib/common.php 파일에보시면

 

새글 아이콘을 출력하는 부분이있습니다.


    $list['icon_new'] = '';
    if ($board['bo_new'] && $list['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - ($board['bo_new'] * 3600)))
        $list['icon_new'] = '<img src="'.$skin_url.'/img/icon_new.gif" alt="새글">';
 
    $list['icon_hot'] = '';
    if ($board['bo_hot'] && $list['wr_hit'] >= $board['bo_hot'])
        $list['icon_hot'] = '<img src="'.$skin_url.'/img/icon_hot.gif" alt="인기글">';
 
    $list['icon_secret'] = '';
    if (strstr($list['wr_option'], 'secret'))
        $list['icon_secret'] = '<img src="'.$skin_url.'/img/icon_secret.gif" alt="비밀글">';

 

이와같은 새글,인기글,비밀글에 대한 아이콘이 나타는 곳이있는데

이것을 응용하여 만들어서 사용중입니다.

위의 코드 하단에 추가하였습니다.


	$list['register_ing'] = '';
	if($list['wr_1'] < date("Y-m-d", G5_SERVER_TIME))//wr_1에는 2016-01-01 식의 날짜가 들어감.
		$list['register_ing'] = '<div class="end">신청마감</div>';
 
	$list['register_end'] = '';
	if($list['wr_1'] > date("Y-m-d", G5_SERVER_TIME))
		$list['register_end'] = '<div class="ing">신청</div>';

 

해당 list.skin.php 파일에 

 


<?if (isset($list[$i]['register_end'])) echo $list[$i]['register_end'];?>
<?if (isset($list[$i]['register_ing'])) echo $list[$i]['register_ing'];?>

이런식으로 사용중입니다.

 

달력은 write.skin.php 파일에


달력 스크립트
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.18/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>
 
<script>
$(function() {
  $( "#datepicker1, #datepicker2" ).datepicker({
    dateFormat: 'yy-mm-dd',
    prevText: '이전 달',
    nextText: '다음 달',
    monthNames: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],
    monthNamesShort: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],
    dayNames: ['일','월','화','수','목','금','토'],
    dayNamesShort: ['일','월','화','수','목','금','토'],
    dayNamesMin: ['일','월','화','수','목','금','토'],
    showMonthAfterYear: true,
    yearSuffix: '년'
  });
});
</script>
 
<input type="text" id="datepicker1" name="wr_1" value="<?echo $write["wr_1"]?>">
답변을 작성하시기 전에 로그인 해주세요.
전체 4
© SIRSOFT
현재 페이지 제일 처음으로