当前位置: 首页 > 知识库问答 >
问题:

jquery datepicker更改月份和日期

刘选
2023-03-14

当选择开始日期时,我希望只有3-7天的可能性才是开始日期。因此,数据周期应为最小3天,最大7天。

现在可以使用以下代码

null

 $(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) {
            
      }});

null

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

现在对我有效的OK解决方案:

null

$(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) {
            
      }});
}); 

null

共有2个答案

石苏燕
2023-03-14
var formatedDate = YourDate.toISOString().substring(0, 10);
臧增
2023-03-14

好的,所以我相信发生的事情是,您将selectedDate日期字符串(格式为'dd-mm-yy')传递到JavaScript函数date()中,但该函数不知道前两位数是日,后两个是月,第三个是年。因此,您需要做的是分解所选的date并将其重新格式化为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转换为一整年,而不是仅仅转换为最后两位数。

 类似资料:
  • 我需要此格式MonthDay,示例 但我得到的格式是: 我需要做什么?

  • 我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)

  • 问题内容: 我需要用mysql减去1个月零4天,我看到命令 完美适用于1个月但1个月零4天,使用31天对于每个月带来30、29、28的每月无效。我无法添加31 + 4,30 + 4,等等 问题答案: 使用 [docs] 像:

  • 我在利用这一刻。js以特定的形式显示时间- 上面的代码以下面的格式显示日期和时间 0年0月1天37小时 我需要展示这样的东西 0年0月1天13小时 我已经尝试使用from现在和from https://momentjs.com/docs/#/displaying/from/ 但无法获得输出。我怎样才能做到这一点。

  • 问题内容: 我有以下代码: 但月份名称以英文显示。我该怎么做才能用法语显示?我已将默认区域性更改为法语,但没有任何反应。 问题答案: 从http://php.net/manual/en/function.date.php中: 要使用其他语言格式化日期,应使用setlocale()和 strftime()函数代替date()。

  • 我有一个JSON对象,它有几个日期,例如:15/12/2005或14/12/2012。 我需要将月份和日期与今天的月份和日期进行比较;年份无关紧要。我正在这样做: 这会选择日期,但返回2000-12-15。我只想要日期和月份。 什么时候会比较下一个方法 虽然当前日期匹配,但测试不通过。