datepicker 문의드립니다. (주말만선택 or 평일비활성)

datepicker 문의드립니다. (주말만선택 or 평일비활성)

QA

datepicker 문의드립니다. (주말만선택 or 평일비활성)

본문

예약게시판에서 사용중인데요. 

평일을 비활성화하고 토,일만 선택할 수 있게 하고 싶은데

잘 안됩니다... 구글링으로 찾아봐도 제가 원하는건 잘 안보이네요..

 

아래는 제 datepicker.php 소스입니다.

// 주말만선택코드 ==> 요부분은 구글로 찾아서 넣어봤는데

잘 작동안해서요 ㅠㅠ 

도움부탁드립니다.

 

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
add_stylesheet('<link type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css" rel="stylesheet" />', 0);
add_stylesheet('<link type="text/css" href="'.G5_PLUGIN_URL.'/jquery-ui/style.css">', 0);
?>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
<script>

// 주말만선택코드
$(function() {
        $('#datepicker').datepicker({ 
            dateFormat: "yy-mm-dd",
            regional: "ko",
            beforeShowDay: function(date){
                var day = date.getDay();
                return [(day != 1 && day != 2 && day != 3 && day != 4 && day != 5)];
            }            
        });    
});
$(function(){
   // 날짜지정
    var disabledDays = ["2021-5-19"];
    // 특정일선택막기
    function disableAllTheseDays(date) {
        var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
        for (i = 1; i < disabledDays.length; i++) {
            if($.inArray(y + '-' +(m+1) + '-' + d,disabledDays) != -1) {
                return [false];
            }
        }
        return [true];
    }
    $("#date_wr_1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        yearRange: "c-99:c+99",
        minDate: "+0d;",
        maxDate: "+365d;",
        beforeShowDay: disableAllTheseDays
    });
});
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: "yymmdd",
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: true,
        yearSuffix: ""
    };
    $.datepicker.setDefaults($.datepicker.regional["ko"]);
});
</script>

이 질문에 댓글 쓰기 :

답변 1


 
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
add_stylesheet('<link type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css" rel="stylesheet" />', 0);
add_stylesheet('<link type="text/css" href="'.G5_PLUGIN_URL.'/jquery-ui/style.css">', 0);
?>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
<script>
jQuery(function($){
 
        $('#datepicker').datepicker({ 
            dateFormat: "yy-mm-dd",
            regional: "ko",
            beforeShowDay: function(date){
                var day = date.getDay();
                return [(day != 1 && day != 2 && day != 3 && day != 4 && day != 5)];
            }            
        });    
 
   // 날짜지정
    var disabledDays = ["2021-5-19"];
    // 특정일선택막기
    function disableAllTheseDays(date) {
        var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
        for (i = 1; i < disabledDays.length; i++) {
            if($.inArray(y + '-' +(m+1) + '-' + d,disabledDays) != -1) {
                return [false];
            }
        }
        return [true];
    }
    $("#datepicker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        yearRange: "c-99:c+99",
        minDate: "+0d;",
        maxDate: "+365d;",
        beforeShowDay: disableAllTheseDays
    });

 
    $.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: "yymmdd",
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: true,
        yearSuffix: ""
    };
    $.datepicker.setDefaults($.datepicker.regional["ko"]);
})
</script>

 
<p>Date: <input type="text" id="datepicker"></p>
 

 

 

$('#datepicker') 이부분을
$("#date_wr_1") 이걸로 싹 변경하세요.
그리고
 $("#date_wr_1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        yearRange: "c-99:c+99",
        minDate: "+0d;",
        maxDate: "+365d;",
        beforeShowDay: disableAllTheseDays
    });
이부분을

 $("#date_wr_1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        yearRange: "c-99:c+99",
        minDate: "+0d;",
        maxDate: "+365d;",
    beforeShowDay: function(date){
var day = date.getDay();
return [(day != 1 && day != 2 && day != 3 && day != 4 && day != 5)];
}
    });

이렇게 바꿔주세요.

채택 당연합죠! ^^
아참 그런데 이미 지난날짜는 원래 비활성화였지만 지금은 지난날짜도 활성화되어 있는데 이건 어떻게 고치나요? 안고쳐도 상관은 없는데 보기가 좀 그래서요ㅎㅎ

$("#date_wr_1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        showButtonPanel: true,
        yearRange: "c-99:c+99",
        minDate: "+0d;",
        maxDate: "+365d;",
        beforeShowDay: function(date){
               
                var day = date.getDay();
                return [(day != 1 && day != 2 && day != 3 && day != 4 && day != 5 && disableAllTheseDays(date))];
            }   
    });

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

회원로그인

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