2012-12-06 70 views
0

我有兩個文本框通過jQuery datepickers選擇日期。 我想在JavaScript中訪問它們,並以天爲單位查找它們之間的差異。找到從jQuery中挑選的兩個日期之間的區別datepicker

我正在通過文本框的clientID訪問日期,只是採取差異,但它不適合我。 有沒有一些特定的方式來從文本框通過datepicker填充的日期值和任何特殊的方法來查找天差異?

我的日期字段:

<td style="width: 15%"> 
    <asp:TextBox ID="txtStartDt" runat="server" Enabled="true" Width="80%" ValidationGroup="Save"></asp:TextBox> 
    <img alt="Select Date" src="../Images/show-calendar.gif" border="0" style="width: 17px; height: 16px;" onclick="javascript:calendarPicker('ContentPlaceHolder1_txtStartDt')" id="IMG1" /> 
</td> 
<td style="width: 9%"> 
    <asp:Label ID="Label3" runat="server" CssClass="label">End Date:</asp:Label> 
</td> 
<td style="width: 248px"> 
    <asp:TextBox ID="txtEndDt" runat="server" Enabled="true" Width="126px"></asp:TextBox> 
    <img alt="Select Date" src="../Images/show-calendar.gif" border="0" style="width: 17px; height: 16px;" onclick="javascript:calendarPicker('ContentPlaceHolder1_txtEndDt')" id="IMG2" /> 
</td> 

我的javascript:

function CheckDuration() { 
    var toDate1 = document.getElementById('<% =txtStartDt.ClientID%>'); 
    var toDate2 = new Date(toDate1.value.replace('-', ' ')); 

    var toDate = toDate2.setDate(toDate2.getDate()); 

    var toDate4 = document.getElementById('<% =txtEndDt.ClientID%>'); 
    var toDate5 = new Date(toDate1.value.replace('-', ' ')); 

    var toDate6 = toDate2.setDate(toDate2.getDate()); 

    if ((toDate6 - toDate) > 30) 
     confirm("Selected time period is of more than 1 month duration"); 
} 
+0

我們不能幫助你沒有代碼和你有什麼嘗試。 –

+0

是的,高層次的觀點是將兩個文本框的值轉換爲Date對象並使用Date API方法.. –

+0

問題是我在家..並且沒有訪問代碼..我以爲解釋可以幫助..反正我會嘗試在早上更新。 – Richa

回答

3

有內置的方法來獲得從具有日期選擇器輸入一個日期,這個日期將是一個javascript日期對象,您可以在其上使用像getTime()這樣的函數從紀元獲得毫秒,然後從另一箇中減去一個:

var from_date = $("#from_input").datepicker('getDate'), 
    to_date = $("#to_input").datepicker('getDate'); 

var diff_in_milliseconds = to_date.getTime() - from_date.getTime(); 

現在你必須弄清楚一天有多少毫秒?

編輯:

我會使用以下Java腳本,你會發現日期之間的區別添加一個例子,這個

FIDDLE

+0

謝謝我會嘗試這個「#..」必須有客戶端ID? – Richa

+0

請參閱編輯問題 – Richa

+0

我的代碼對不起,但我沒有真正閱讀ASP? – adeneo

0

。假設有兩個箱子的名稱dtpEventDate = '06/12/2012' 和dtpEndDate = '08/12/2012'

var fa = dtpEventDate.split('/') 
var ta = dtpEndDate.split('/') 

// var a = new Date(fa[1]-1,fa[0],fa[2]);   
// var d = new Date(ta[1]-1,ta[0],ta[2]); for MM-dd-yyyy 

    var a = new Date(fa[2],fa[1]-1,fa[0]); 
    var d = new Date(ta[2],ta[1]-1,ta[0]); // for dd-MM-yyyy 

使用VAR a和d,我們可以找到最新的區別

0
function CheckDuration() { 
       //    alert(""); 

       var toDate1 = document.getElementById('<% =txtStartDt.ClientID%>'); 
       var toDate2 = new Date(toDate1.value.replace('-', ' ')); 

       var toDate = toDate2.setDate(toDate2.getDate()); 

       var toDate4 = document.getElementById('<% =txtEndDt.ClientID%>'); 
       var toDate5 = new Date(toDate4.value.replace('-', ' ')); 

       var toDate6 = toDate5.setDate(toDate5.getDate()); 

       if (toDate && toDate6) { 
         diff = ((toDate6 - toDate)/86400000); 

     //      alert(diff); 
         if(diff>30) 
         return confirm("Selected time period is of more than 1 month duration"); 
       } 
相關問題