在Javascript中减去日期

时间:2018-05-15 07:44:27

标签: javascript c# asp.net date

我的代码应该减去日期(enddate-startdate),但没有发生任何事情,也无法找出问题所在。

 <script type="text/javascript">
        function subtractDate()
        {

            var sDate = Date.parse("<%=txtStartDate.Text%>");
            var eDate = Date.parse("<%=txtEndDate.Text%>");
            var resultDate = document.getElementById("<%=txtnumberOfDaysCovered.ClientID%>")
            if (document.getElementById(sDate) < document.getElementById(eDate)) {
                var timeDiff = eDate.Subtract(sDate);
                resultDate = Math.floor(timeDiff / (1000 * 60 * 60 * 24));


            }
        }
    </script>

我已经尝试将其称为

    protected void txtStartDate_TextChanged(object sender, EventArgs e)
    {

       // SubtractDateStartDateChange();
        Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "subtractDate(this.Id)", true);
    }

    protected void txtEndDate_TextChanged(object sender, EventArgs e)
    {
        //SubtractDate();
        Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "subtractDate(this.Id)", true);
    }

1 个答案:

答案 0 :(得分:2)

您从代码后面的代码传递subtractDate(this.Id),但函数subtractDate()不期望客户端上的任何参数。我认为,由于这个功能不起作用。function subtractDate()期待一个Id参数,用一个参数改变函数。

希望函数如下工作。

function subtractDate(var id)
        {

            var sDate = Date.parse("<%=txtStartDate.Text%>");
            var eDate = Date.parse("<%=txtEndDate.Text%>");
            var resultDate = document.getElementById("<%=txtnumberOfDaysCovered.ClientID%>")
            if (document.getElementById(sDate) < document.getElementById(eDate)) {
                var timeDiff = eDate.Subtract(sDate);
                resultDate = Math.floor(timeDiff / (1000 * 60 * 60 * 24));


            }
        }