首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Java script从用户输入的asp.net中获取两个日期之间的天数差

如何使用Java script从用户输入的asp.net中获取两个日期之间的天数差
EN

Stack Overflow用户
提问于 2018-06-14 02:27:34
回答 1查看 263关注 0票数 0

我想做一些计算,得到用户输入到文本框中的2个日期的差值,并将其显示在标签或文本框中。我的其中一个日期是固定日期,并显示在一个名为Asofdate的标签中。用户将在DOL文本框中输入第二个日期。

Here is the image of my form

下面是我的html代码:

代码语言:javascript
复制
<tr>
    <td style="font-weight: bold; text-align:left; width:80px">&nbsp;As of Date: </td>
    <td>
        <asp:Label ID="lblAsOfDate" runat="server" Text="04/15/2018">/asp:Label>
    </td>
</tr>

<tr>
    <td class="ColWidth">
        <span class="red" style="color: #FF0000; font-weight: bold;">*</span>
        <asp:Label ID="lblDOL" runat="server" Text="DOL "></asp:Label>
    </td>
    <td class="InputCallWidth" style="vertical-align: top;">
        <asp:TextBox ID="txtDOL" runat="server" placeholder="MM/DD/YYYY"
             Height="25px" Width="120px" Enabled="True" onkeyup="getTotalDaysDown();" 
             ClientIDMode="Static">
        </asp:TextBox>
        <br />                        
        <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender3"
                runat="server"
                ClearMaskOnLostFocus="true"
                AutoComplete="false"
                MaskType="Date"
                Mask="99/99/9999"
                InputDirection="LeftToRight"
                TargetControlID="txtDOL">
        </ajaxToolkit:MaskedEditExtender>
        <ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator3"
                ControlExtender="MaskedEditExtender3"
                runat="server"
                ControlToValidate="txtDOL"
                IsValidEmpty="False"
                EmptyValueMessage="Date is Required!"
                Display="Dynamic" ValidationGroup="logSave" 
                InvalidValueMessage='Invalid Date!' Font-Size="Smaller" 
                Font-Bold="True" ForeColor="Red"
                MaximumValue="12/31/9999" MaximumValueMessage="Invalid Date!" 
                MinimumValue="1/1/1754 " MinimumValueMessage="Invalid Date!">
         </ajaxToolkit:MaskedEditValidator>
    </td>
<tr>

这是我使用我的脚本进行计算的部分。这是公式:(AsOfDate - Dol) +1

代码语言:javascript
复制
<script language="javascript" type="text/javascript">
    function getTotalDaysDown() {
       //Here is the part that I have problem. I can't get the values from label and textbox. 
       var AsOfDate = document.getElementById("lblAsOfDate").value;
       var DOL = document.getElementById("txtDOL").value;
       var diff = (new Date(AsOfDate) - new Date(DOL)) / (1000 * 60 * 60 * 24);

       //I don't get no result populated in my lblDaysDown label.
       //In the console I get the error that "Cannot read property 'value' of null"
       document.getElementById('<%=lblDaysDown.ClientID %>').innerHTML = (diff + 1);
       return false;
    }
</script>
EN

回答 1

Stack Overflow用户

发布于 2018-06-14 06:09:09

Asuming一切正常,在ASP端,你得到了正确的is,这应该可以工作。

代码语言:javascript
复制
<script language="javascript" type="text/javascript">
    function getTotalDaysDown() {
       //Here is the part that I have problem. I can't get the values from label and textbox. 

       var AsOfDate = new Date(document.getElementById("<%=lblAsOfDate.ClientID %>").innerHTML); //Value should be 04/15/2018 according to your image
       var DOL = new Date(document.getElementById("<%=txtDOL.ClientID %>").value); //Value should be 11/01/2017 according to your image
       var diff = (AsOfDate - DOL) / (1000 * 60 * 60 * 24);

       document.getElementById('<%=lblDaysDown.ClientID %>').innerHTML = (diff + 1);
       return false;
    }
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50843915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档