jquery datepicker更改月和日

时间:2015-12-19 19:41:23

标签: jquery datepicker

当选择到期日时,我希望到目前为止可能有3-7天。 所以数据范围应该是最少3天和最多7天。

现在可以使用以下代码:

 $(function() {
      $.datepicker.setDefaults({minDate: 0, changeMonth: true, numberOfMonths: 1});
      $('#datepicker').datepicker({onSelect: function(selectedDate) {
       
            var newToDateStart=new Date(selectedDate);
            newToDateStart.setDate(newToDateStart.getDate()+3)
            var newToDateEnd=new Date(selectedDate);
            newToDateEnd.setDate(newToDateEnd.getDate()+7);
          
            $('#datepicker1').datepicker('option', 'minDate', newToDateStart);
          $('#datepicker1').datepicker('option', 'maxDate', newToDateEnd);
            setTimeout(function() { $('#datepicker1').focus(); }, 0);
      }});
      $('#datepicker1').datepicker({onSelect: function(selectedDate) {
            
      }});

我的问题是格式。我想要它像dd-mm-yyyy。但是,当我这样做时,数据范围无法正常工作...当我今天选择作为开始日期时,第一个可能的日期是在1月份的一些...

现在适合我的解决方案:

$(function() {
      $.datepicker.setDefaults({minDate: 0, changeMonth: true, numberOfMonths: 1, dateFormat: 'dd-mm-yy'});
      $('#datepicker').datepicker({onSelect: function(selectedDate) {
        $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' });


        var d = selectedDate.substr(0,2); // retrieve the day from the string
        var m = selectedDate.substr(3,2); // retrieve the month from the string
        var y = selectedDate.substr(6,4); // retrive the year from the string
        var newToDateStart=new Date(y,m-1,d); // month is zero-based, so subtract 1
        newToDateStart.setDate(newToDateStart.getDate()+3)

        var newToDateEnd=new Date(y,m-1,d);
        newToDateEnd.setDate(newToDateEnd.getDate()+7);

            $('#datepicker1').datepicker({ dateFormat: 'dd-mm-yy' });
            $('#datepicker1').datepicker('option', 'minDate', newToDateStart);
          $('#datepicker1').datepicker('option', 'maxDate', newToDateEnd);
            setTimeout(function() { $('#datepicker1').focus(); }, 0);
      }});
      $('#datepicker1').datepicker({onSelect: function(selectedDate) {
            
      }});
}); 

2 个答案:

答案 0 :(得分:1)

好的,所以我相信发生的事情是你将你的selectedDate日期字符串(格式化为' dd-mm-yy')传入JavaScript函数Date()但函数我不知道前两位是日,第二位是月,第二位是年。所以你需要做的是分解selectedDate并将其重新格式化为Date()识别的日期字符串(例如mm / dd / yyyy)或将其分成单独的数字并传递给它们,如:

var d = selectedDate.substr(0,2); // retrieve the day from the string
var m = selectedDate.substr(3,2); // retrieve the month from the string
var y = selectedDate.substr(6,2); // retrive the year from the string
var newToDateStart=new Date(y,m-1,d); // month is zero-based, so subtract 1

注意:如果年份大概是15岁,你按原样将其传递给Date(),Date()可能会认为它是1915而不是2015.所以根据你的需要,你可能想要将y转换为一整年,而不仅仅是最后两位数。

答案 1 :(得分:0)

var formatedDate = YourDate.toISOString().substring(0, 10);