Javascript 如何显示截止日期为31-03的结束日期

Javascript 如何显示截止日期为31-03的结束日期,javascript,jquery,jquery-ui,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Jquery Ui Datepicker,我有一个两人约会的选择者。第一个日期选择器是开始日期,第二个日期选择器是结束日期 所以我要做的是,我的结束日期范围是31-03年(取决于开始日期) 我选择开始日期31-01-2019,因此用户可以选择截止日期31-03-2019。这个场景适合我(请检查代码段) 现在我的问题是,如果用户选择开始日期01-04-2019,那么用户可以选择截止日期31-03-2020 所以我的截止日期是31-03 我知道我必须使用下面的代码,但我不知道如何使用它。如果条件允许,我应该使用吗 var nextYea

我有一个两人约会的选择者。第一个日期选择器是开始日期,第二个日期选择器是结束日期

所以我要做的是,我的结束日期范围是31-03年(取决于开始日期)

我选择开始日期
31-01-2019
,因此用户可以选择截止日期
31-03-2019
。这个场景适合我(请检查代码段)

现在我的问题是,如果用户选择开始日期
01-04-2019
,那么用户可以选择截止日期
31-03-2020

所以我的截止日期是31-03

我知道我必须使用下面的代码,但我不知道如何使用它。如果条件允许,我应该使用吗

  var nextYear = $.datepicker.parseDate("dd-mm-yy", "31-03-" + (yy + 1));
你能帮我解决这个问题吗

$(函数(){
var year=(新日期).getFullYear();
$(“.start\u date”).datepicker({
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
minDate:0,
//maxDate:“+0Y”,
年份范围:新日期().getFullYear()+':'+新日期().getFullYear(),
showAnim:“剪辑”,
//月数:1,
onSelect:功能(dt、dp){
所选变量=$.datepicker.parseDate(“dd-mm-yy”,dt);
var yy=selected.getFullYear();
var mm=selected.getMonth();
var dd=selected.getDate();
var nextYear=$.datepicker.parseDate(“dd-mm-yy”,“31-03-”+(yy));
//警报(nextYear);
$(“.end_date”).datepicker(“选项”,“maxDate”,nextYear);
}
});
$(“.end_date”).datepicker({
按钮文字:“选择日期”,
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
minDate:0,
//最大日期:“+1Y”,
//maxDate:新日期(年份,03,31),
showAnim:“剪辑”
});
});

开始日期
结束日期

此功能将在输入日期后的下一个3月31日找到您。在那之后,它应该是直截了当的

var myDate=新日期(“2018-04-01”)
myDate.setUTCMonth(数学楼层((myDate.getUTCMonth()+10)/12)*12+2)
myDate.setUTCDate(31)
myDate.setUTCHours(0)
myDate.setUTCMinutes(0)
myDate.setUTCSeconds(0)

console.log(myDate)
此函数将在输入日期后的下一个3月31日找到您。在那之后,它应该是直截了当的

var myDate=新日期(“2018-04-01”)
myDate.setUTCMonth(数学楼层((myDate.getUTCMonth()+10)/12)*12+2)
myDate.setUTCDate(31)
myDate.setUTCHours(0)
myDate.setUTCMinutes(0)
myDate.setUTCSeconds(0)

console.log(myDate)
因为开始日期限制在当前年份,目标日期是该月的最后一天,除了开始日期的月份之外,您不必检查任何其他内容

onSelect: function(dt, dp) {
  var selected = $.datepicker.parseDate("dd-mm-yy", dt);
  var yy = selected.getFullYear();
  var mm = selected.getMonth();
  var dd = selected.getDate();

  if(mm > 2) //date is later than march
    yy++;
  var nextYear = $.datepicker.parseDate("dd-mm-yy", "31-03-" + (yy));
  $(".end_date").datepicker("option", "maxDate", nextYear);
}

由于开始日期仅限于当前年份,而目标日期是当月的最后一天,因此除了开始日期的月份之外,您无需检查其他任何内容

onSelect: function(dt, dp) {
  var selected = $.datepicker.parseDate("dd-mm-yy", dt);
  var yy = selected.getFullYear();
  var mm = selected.getMonth();
  var dd = selected.getDate();

  if(mm > 2) //date is later than march
    yy++;
  var nextYear = $.datepicker.parseDate("dd-mm-yy", "31-03-" + (yy));
  $(".end_date").datepicker("option", "maxDate", nextYear);
}

我就是这么做的

$(函数(){
让今天=新日期(Date.UTC());
让currentYear=today.getUTCFullYear();
$(“.start\u date”).datepicker({
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
年份范围:当前年份+':'+当前年份,
minDate:0,
showAnim:“剪辑”,
onSelect:功能(日期){
让selectedDate=newdate(Date.split('-').reverse().join('-');
让selectedYear=selectedDate.getUTCFullYear();
让截止日期=新日期(Date.UTC(selectedYear,2,31));
让maxDate=selectedDate>cutoffDate?
新日期(UTC日期(所选年份+1、2、31)):
新日期(UTC日期(所选年份,2,31));
$('end_date')。日期选择器('option','minDate',date);
$('.end_date').datepicker('option','maxDate','31-03-'+maxDate.getUTCFullYear());
$('.end_date').datepicker('option','yearRange',currentYear+':'+maxDate.getUTCFullYear());
}
});
$(“.end_date”).datepicker({
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
年份范围:当前年份+':'+当前年份,
minDate:0,
showAnim:“剪辑”
});
});

开始日期
结束日期

我就是这样做的

$(函数(){
让今天=新日期(Date.UTC());
让currentYear=today.getUTCFullYear();
$(“.start\u date”).datepicker({
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
年份范围:当前年份+':'+当前年份,
minDate:0,
showAnim:“剪辑”,
onSelect:功能(日期){
让selectedDate=newdate(Date.split('-').reverse().join('-');
让selectedYear=selectedDate.getUTCFullYear();
让截止日期=新日期(Date.UTC(selectedYear,2,31));
让maxDate=selectedDate>cutoffDate?
新日期(UTC日期(所选年份+1、2、31)):
新日期(UTC日期(所选年份,2,31));
$('end_date')。日期选择器('option','minDate',date);
$('.end_date').datepicker('option','maxDate','31-03-'+maxDate.getUTCFullYear());
$('.end_date').datepicker('option','yearRange',currentYear+':'+maxDate.getUTCFullYear());
}
});
$(“.end_date”).datepicker({
日期格式:“dd-mm-yy”,
变化月:对,
变化年:是的,
年份范围:当前年份+':'+当前年份,
minDate:0,
showAnim:“剪辑”
});
});

开始日期
结束日期

请给我一些时间来检查这个答案。这种方法会奏效,但是。。。输入将是午夜UTC日期对象。如果您使用非UTC方法操作它,您将得到。getDate()将在前一天为伦敦西部的用户返回。请给我一些时间检查此答案此方法可行,但。。。输入将是午夜UTC日期对象。如果您使用非UTC方法操作它,您将得到。getDate()将在前一天为伦敦西部的用户返回。请给我一些时间检查此答案答案是否已更新。彻底检查,但它似乎正在工作。您应该做些什么来限制结束日期在开始日期之后?让我检查一下。请给我一点时间再核对一下。请给我一点时间核对一下这个答案。胆碱酯酶