채택완료

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

2021-06-23 (수) 13:51:19 3,476

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

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

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

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

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

잘 작동안해서요 ㅠㅠ 

도움부탁드립니다.

Copy
<?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개 / 댓글 9개

채택된 답변
+20 포인트
Copy
<?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>

답변에 대한 댓글 9개

2021-06-23 (수) 14:03:46
필립스님 댓글 감사합니다.
근데 여전히 작동 안되요ㅡ.ㅜ
전체소스를 주실레요.
제가해본결과 제가드린소스는 잘됩니다.
2021-06-23 (수) 14:16:32
전체소스는 어떤거인가요?
plugin폴더에 jquery-ui폴더 안에 datepicker.php밖에 없네요.
게시판스킨이 있어야 할까요?
url 줘보세요.
$('#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)];
}
});

이렇게 바꿔주세요.
2021-06-23 (수) 15:13:21
헉.. 이제 잘 됩니다ㅎㅎ
필립스님 고맙습니다 꾸벅(__)
채택부탁드려요 ㅎ
2021-06-23 (수) 15:17:30
채택 당연합죠! ^^
아참 그런데 이미 지난날짜는 원래 비활성화였지만 지금은 지난날짜도 활성화되어 있는데 이건 어떻게 고치나요? 안고쳐도 상관은 없는데 보기가 좀 그래서요ㅎㅎ
$("#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))];
}
});

답변을 작성하려면 로그인이 필요합니다.