在javascript中减去日期

时间:2018-05-14 20:09:33

标签: javascript

我正在处理Onchange()事件表单。

Form example

默认情况下,截至日期的当前值为今天。如果用户输入剩余付款= 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);
}

我不确定我在这里做错了什么。任何帮助将不胜感激。谢谢。

1 个答案:

答案 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);

这有助于解决我的问题。