【问题标题】:Number of days between two Ajax Datetime picker using javascript使用 javascript 的两个 Ajax 日期时间选择器之间的天数
【发布时间】:2012-02-20 16:46:51
【问题描述】:

我的 aspx 选择器中有两个 Ajax 日期时间选择器。我想在脚本中使用可以计算两个日期之间的天数并使用 java 脚本将天数粘贴到“Number_Of_Days”文本框中而不刷新页面.在选择第二个日期的日期时,它应该计算天数,同时它应该检查是否选择了第一个日期时间选择器的日期。

【问题讨论】:

  • 你在使用 jquery ui 日期选择器吗?
  • Asp.Net 中没有 Ajax DateTimePicker。

标签: javascript jquery asp.net ajax


【解决方案1】:

来试试这个。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
FROM:
<asp:TextBox 
    ID="dateFrom" 
    runat="server" />
<asp:CalendarExtender 
    ID="ajxCEFrom" 
    runat="server" 
    TargetControlID="dateFrom"
    OnClientDateSelectionChanged="calcDays"/>
TO:
<asp:TextBox 
ID="dateTo" 
runat="server" />
<asp:CalendarExtender 
    ID="ajxCETo" 
    runat="server"
    TargetControlID="dateTo"
    OnClientDateSelectionChanged="calcDays"/> 
<div>
    DIFFERENCE: <span id="result"></span>
</div>

并将此代码用于您的 javascript。

<script type="text/javascript">
function calcDays() {
    var d1 = document.getElementById("<%=dateFrom.ClientID%>");
    var d2 = document.getElementById("<%=dateTo.ClientID%>");
    var result = document.getElementById("result");

    if(d1.value != "" && d2.value != ""){
        var dateFrom = new Date(d1.value);
        var dateTo = new Date(d2.value);
        var oneDay = 24 * 60 * 60 * 1000;
        var diffDays = Math.abs((dateFrom.getTime() - dateTo.getTime()) / (oneDay));
        result.innerHTML = diffDays + " day/s apart.";
    }
}
</script>

希望对您有所帮助。

【讨论】:

  • 感谢@Drew 的回复。查看代码似乎工作正常,但我在 出现小错误,因为控件包含代码块(即 )..请帮我解决这个问题提前谢谢。
  • 您是否将控件的 ClientIDMode 设置为静态?如果是这样,您可以使用控件的 ID 而不是 ClientID。
【解决方案2】:

您可以尝试使用类似 Sugar js 的库,http://sugarjs.com/api/Date/unitsUntil。它有一些非常方便的功能来处理日期等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多