【问题标题】:how to set -3years from current date and +9months from the current date in JQUERY in datepicker如何在 datepicker 中的 JQUERY 中设置从当前日期起 -3 年和从当前日期起 +9 个月
【发布时间】:2015-05-29 17:42:01
【问题描述】:

嘿,我正在使用 html5 日期属性,它需要通过今天的当前日期/年份来动态地限制过去年份和未来日期。

DEMO

  • 从当前日期起-3年

  • 从当月起+9个月

例子:

当前年份是 2015-3 = 2012 + 9 个月

JS:

var checkUserAgent = navigator.userAgent;
      // if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) {
            $('meta[name=viewport]').attr('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');
            var checkBabyId1 = $('#babys_due_date_id').length > 0;
            if (checkBabyId1 == true) {

                // logic for 9 months 
                var myMonths = 9;
                var CurrentDate = new Date();
                CurrentDate.setMonth(CurrentDate.getMonth() + myMonths);

                console.log(CurrentDate) // adding 9 months 

                // logic for - 3 years
                var myPastYears = 3;
                var CurrentYear = new Date();
                CurrentYear.setYear(CurrentYear.getYear() - myPastYears )
                console.log(CurrentYear) // - 3years


                $('#ui-datepicker-div').hide();
                $('#babys_due_date_id.date-padding label').hide();
                $('#babys_due_date_id')
                .find('input')
                .prop({
                    /*'readonly':'true', */
                    'type':'date'/*,
                    'min' : '2012-01-01',
                    'max' : '2016-12-01'*/
                })
                .css({ 
                    'border':'1px solid #f00 !important',
                    'width':'200px','margin-top':'10px' 
                });

                $('#babys_due_date_id label').on('click', function(e){
                    e.preventDefault();
                    $('#ui-datepicker-div').hide();
                });

                $('#babys_due_date_id-datepicker-popup-0').on('click', function(){
                    $('#ui-datepicker-div').remove();
                    $('#ui-datepicker-div').datepicker( "option", "disabled", true );
                });
            }
      // }

【问题讨论】:

    标签: javascript jquery ios iphone html


    【解决方案1】:

    使用 minDate 选项:

    $('#ui-datepicker-div').datepicker( "option", "minDate", "-3y +9m");
    

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

    或:

    <script>
      var now = new Date();
        var year = now.getFullYear() - 3;
        var month = now.getMonth() - 8; // jan = 0
        if (month < 0) {
          month = 11 + month;
          year++;
        }
    
      $('#datepicker').attr("min", year+'/'+month+'/'+now.getDate());
    </script>
    

    对于简单的&lt;input type="date"&gt;

    【讨论】:

    • 谢谢,但我正在使用 iPhone 默认日期选择器 ,我可以添加最小值和最大值,但这将是硬编码的,我需要自动调整
    • 你可以用javascript填写最小/最大日期
    • 我添加了第二个版本
    • 这回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多