0

jQuery 日付ピッカーを介して日付を選択する 2 つのテキスト ボックスがあります。JavaScript でそれらにアクセスし、それらの日数の違いを見つけたいと考えています。

テキスト ボックスの clientID を介して日付にアクセスし、単純に差をとっていますが、うまくいきません。日付ピッカーを介して入力されたテキストボックスから日付値にアクセスする特定の方法と、日数の違いを見つける特別な方法はありますか?

私の日付フィールド:

<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");
}
4

3 に答える 3

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();

では、1 日が何ミリ秒かを計算する必要があります。

編集:

これに例を追加します

フィドル

于 2012-12-06T18:42:41.010 に答える
0

次の Java スクリプトを使用すると、日付の違いがわかります。dtpEventDate = '06/12/2012' および dtpEndDate = '08/12/2012' という名前の 2 つのボックスがあるとします。

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 を使用して、日付の違いを見つけることができます

于 2012-12-06T19:56:51.400 に答える