我正在处理Onchange()事件表单。
默认情况下,截至日期的当前值为今天。如果用户输入剩余付款= 12个月,则
租约结束=截至日期的现值+剩余付款(即月数)。
对于我的onchange事件,我正在尝试自动计算租约。 在这里,租赁开始=租约结束 - 剩余付款。
到目前为止,这是我的代码。我遇到的问题是,租约开始日期已经反映出来,但它的回报时间比租约结束时少了一天。然而,计算租赁结束本身的第一部分工作正常。
function PopulateEndDate() {
debugger;
var d2;
var paymentDays;
var stDate;
var pDate;
var etDate;
var ddlFrequency = document.getElementById("ddFrequency");
var selectedFrequency = ddlFrequency.options[ddlFrequency.selectedIndex].value;
if (document.getElementById("startDate"))
stDate = document.getElementById("startDate").value;
if (document.getElementById("presentDate"))
pDate = document.getElementById("presentDate").value;
var today = new Date();
if (stDate)
d2 = new Date(stDate);
else
d2 = new Date(pDate);
if (document.getElementById("paymentRemaining")) {
if (selectedFrequency == "D") {
paymentDays = document.getElementById("paymentRemaining").value;
}
else if (selectedFrequency == "Q") {
paymentDays = document.getElementById("paymentRemaining").value * 3;
}
}
if (paymentDays && paymentDays != "")
d2.setMonth(d2.getMonth() + parseInt(paymentDays));
if (document.getElementById("endDate"))
document.getElementById("endDate").value = getCurrentDay(d2);
var endDate = document.getElementById("endDate").value;
if (endDate)
etDate = new Date(endDate);
if (stDate == null && paymentDays && paymentDays != "")
{
etDate.setMonth(etDate.getMonth() - parseInt(paymentDays));
}
if (document.getElementById("startDate"))
document.getElementById("startDate").value = getCurrentDay(etDate);
}
我不确定我在这里做错了什么。任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
if (endDate){
var etDate = new Date(endDate);
var eDay = etDate.getUTCDate()+1;
var eMonth = etDate.getUTCMonth()+1;
var eYear = etDate.getUTCFullYear()-1;
var sDate = eYear + "-" + eMonth + "-" + eDay;
if (stDate == null)
{
sDate.setMonth(sDate.getDay() - parseInt(paymentDays));
}
if (document.getElementById("startDate"))
document.getElementById("startDate").value = getCurrentDay(sDate);
这有助于解决我的问题。