使用DateFormat将jQuery Datepicker限制为当前的会计年度:'MM-dd'

时间:2013-02-20 17:58:41

标签: jquery datepicker

下面是我在我的应用程序中使用的jQuery日期选择器&它的运行很棒。 现在的问题是我想把它限制在当前的财政年度和为此,我正在使用:

maxDate: '03/30/2013' & minDate:'04/01/2012'

但它不适用于当前的dateFormat:'MM-yy'我正在使用&最糟糕的是我不能改变dateFormat。

var postForm = false;
    $(function () {
        $('.Month-Picker').datepicker({
            changeMonth: true,
            changeYear: true,
            showButtonPanel: false,
            maxDate: '03/30/2013',
            minDate:'04/01/2012',
            dateFormat: 'MM-yy',
            onChangeMonthYear: function () { postForm = true; },
            onClose: function (dateText, inst) {
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $(this).datepicker('setDate', new Date(year, month, 1));
            },
            beforeShow: function (input, inst) {
                if ((datestr = $(this).val()).length > 0) {
                    year = datestr.substring(datestr.length - 4, datestr.length);
                    month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $(this).datepicker('option', 'monthNames'));
                    $(this).datepicker('option', 'defaultDate', new Date(year, month, 1));
                    $(this).datepicker('setDate', new Date(year, month, 1));
                    postForm = false;
                }
            }
        });
    });

    $(document).ready(function () {
        $("#aspnetForm").click(function () {
            if (postForm == true) {
                postForm = false;
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $(this).datepicker('setDate', new Date(year, month, 1));
            }
        });
    });

请帮帮我。

2 个答案:

答案 0 :(得分:3)

尝试设置min&通过声明Javascript日期来确定最长日期:

$('.Month-Picker').datepicker({
    changeMonth: true,
    changeYear: true,
    showButtonPanel: false,
    maxDate: new Date(2013,3,30),
    minDate: new Date(2012,4,01),
    dateFormat: 'MM-yy',

http://api.jqueryui.com/datepicker/#option-minDate

http://www.w3schools.com/js/js_obj_date.asp

答案 1 :(得分:0)

您可以尝试使用以下代码

    $('#User_to_date').datepick({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: false,
        dateFormat: 'MM-yy',
        onChangeMonthYear: function () { postForm = true; },
        onClose: function (dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        },
        beforeShow: function (input, inst) {
            if ((datestr = $(this).val()).length > 0) {
                year = datestr.substring(datestr.length - 4, datestr.length);
                month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $(this).datepicker('option', 'monthNames'));
                $(this).datepicker('option', 'defaultDate', new Date(year, month, 1));
                $(this).datepicker('setDate', new Date(year, month, 1));
                postForm = false;
            }
        }
    });

我在我的项目中使用此代码测试并以“February-21”格式获取日期, 只需将 datepicker 更改为 datepick