Javascript 如何设置从一个日期输入到另一个日期输入的日期?
我有两个日期输入。当我选择开始日期时,我希望jquery自动生成一个3个月后的结束日期Javascript 如何设置从一个日期输入到另一个日期输入的日期?,javascript,jquery,date,input,Javascript,Jquery,Date,Input,我有两个日期输入。当我选择开始日期时,我希望jquery自动生成一个3个月后的结束日期 开始日期 结束日期 您应该收听第一次输入的更改事件,并使用其值创建一个新日期。之后,您可以使用新日期(Date.setMonth(Date.getMonth()+3))向该对象添加3个月。额外3个月的新日期应格式化为yyyy-mm-dd,并设置为第二个输入的值。完整的程序是: $(文档).ready(函数(){ $('darbo_pradzia')。更改(函数(){ let date=新日期($(thi
开始日期
结束日期
您应该收听第一次输入的更改
事件,并使用其值创建一个新日期
。之后,您可以使用新日期(Date.setMonth(Date.getMonth()+3))
向该对象添加3个月。额外3个月的新日期应格式化为yyyy-mm-dd
,并设置为第二个输入的值。完整的程序是:
$(文档).ready(函数(){
$('darbo_pradzia')。更改(函数(){
let date=新日期($(this.val());
设newDate=addMonths(日期,3);
var formatted=newDate.toISOString().split('T')[0];//yyyy-mm-dd
console.log(格式化);
$('bandomasis_laikotarpis').val(格式化);
});
//添加月份到日期功能
功能添加月份(日期,月份){
var d=date.getDate();
date.setMonth(date.getMonth()++月);
if(date.getDate()!=d){
日期。设置日期(0);
}
返回日期;
}
});代码>
开始日期
结束日期
$('darbo_pradzia')。on('focusout',function(){
让startDate=新日期($('darbo_pradzia').val());
设endDate=新日期(startDate);
endDate.setMonth(endDate.getMonth()+3);
let day=(“0”+endDate.getDate()).slice(-2);
让month=(“0”+(endDate.getMonth()+1)).slice(-2);
让date=endDate.getFullYear()+“-”+(月)+“-”+(日);
$('bandomasis_laikotarpis').val(日期);
})
您可以读取onchange
事件或focusout
事件上的值。读取日期,您可以从date
构造函数复制插入的日期。增加月份,如果12个月溢出,则没有问题,因为年份会自动增加,月份值在[0-11]之间缩放。现在要在输入日期字段中写入日期,有两个问题:
HTML5中的日期控件接受年-月-日格式
如果月份为5,则需要将其设置为05,而不是简单地设置为5。同样的事情也适用于day field
在页面中向下添加脚本,或添加就绪/加载事件添加月份并不是那么简单,请参阅。例如,尝试在11月30日或3月31日之前增加3个月。
<script>
$('#darbo_pradzia').on('focusout', function(){
let startDate = new Date($('#darbo_pradzia').val());
let endDate = new Date(startDate);
endDate.setMonth(endDate.getMonth()+3);
let day = ("0" + endDate.getDate()).slice(-2);
let month = ("0" + (endDate.getMonth() + 1)).slice(-2);
let date = endDate.getFullYear()+"-"+(month)+"-"+(day) ;
$('#bandomasis_laikotarpis').val(date);
})
</script>