2013-09-23 94 views
0

我有一個像迄今爲止的兩個日期。 日期格式如28-Sep-2013 and 01-Sep-2013。 我想比較日期並顯示錯誤消息。 我使用此代碼,如何比較兩個日期?

 var from = $('#<%= txtFDateEdu.ClientID %>').val(); 
    var to = $('#<%= txtTDateEdu.ClientID %>').val(); 

    var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 
    var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 
    $.datepicker.formatDate('dd-mm-yy', dateTypeVar); 

    var datefrom = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVar); 
    var dateto = $.datepicker.formatDate('dd/mm/yyyy', dateTypeVarto); 
     alert(datefrom);  

     if (datefrom > dateto) { 
      alert("Success"); 
      } 
     else { 

     } 

此代碼不能正常工作。日期格式發生一些問題。請任何人幫助我解決日期格式問題並正確比較日期。 我也使用此代碼。

var from = $('#<%= txtFDateEdu.ClientID %>').val(); 
       var to = $('#<%= txtTDateEdu.ClientID %>').val(;) 

       alert(from); 
       alert(to); 
       var datefrom = new Date(from); 
       var dateto = new Date(to); 
       alert(datefrom); 
       alert(dateto); 
       if (datefrom > dateto) { 
        alwer("Success"); 
       } 
       else { 

       } 

但這也無法正常工作。

+3

_「此代碼無法正常工作。日期格式中出現了一些問題」_您能稍微詳細地描述一下問題的原因。 – gdoron

+0

是的,以日期格式發佈。我的日期格式類似於2013年9月28日。我想轉換日期而不是比較。 –

+2

@jitendrakumar:如果你知道原因,你應該可以修復它。更加努力。 – KooiInc

回答

-1

我也使用日期選擇器,通常我使用下面的腳本。

function compare_dates(valid_to, valid_from){ 
    var splited_to = valid_to.split("-") 
    var to_date_monthfield=splited_to[1]; 
    var to_date_dayfield=splited_to[0]; 
    var to_date_yearfield=splited_to[2]; 
    var to_date = new Date(to_date_yearfield, to_date_monthfield-1, to_date_dayfield); 

    var splited_from = valid_from.split("-"); 
    var from_date_monthfield=splited_from[1]; 
    var from_date_dayfield=splited_from[0]; 
    var from_date_yearfield=splited_from[2]; 
    var from_date = new Date(from_date_yearfield, from_date_monthfield-1, from_date_dayfield); 

    var cur_date = new Date(); 
    if(!(from_date > cur_date.setDate(cur_date.getDate() - 1))){ 
    return false; 
    } 
    if(!(to_date > from_date)){ 
    return false; 
    } 
    return true; 

} 

這預計你的約會日期是在DD // MM/YYYY格式

here我發現了一些使用完整。你可以使用我的代碼。

new Date(Date.parse(month_string +" 1, 2012")).getMonth()+1 

可以更換monthfield與上面的代碼。或者您也可以使用other方式。

+1

這不是說這是*錯誤*,但它有點幼稚和冗長。它在相同的對象/參數上多次執行「拆分」,並且不進行錯誤檢查。另外,爲什麼不只是返回'to_date.compare(from_date)',並讓調用者決定比較,而不是在功能 – CodingIntrigue

+0

中對其進行硬編碼,我的日期格式如2013年9月28日。請向我提供有關此格式的解決方案。 –

+0

我改變了我的答案,並添加了幾個鏈接。請檢查一下。 –

-1
$("#fromdate, #todate").datepicker(); 
    $("button").click(function(){ 
    var f=$("#fromdate").val(); 
    var t=$("#todate").val(); 
    if(new Date(f)>new Date(t)) 
    alert("wrong!"); 
    else alert("right!");}); 

http://jsfiddle.net/Z9cXM/

編輯

爲不同的格式問題,您可以使用Date.js

var f = $("#fromdate").val(); 
var t = $("#todate").val(); 
f=Date.parse(f); 
t=Date.parse(t); 
if (f>t) alert("wrong!"); 
else alert("right!"); 

http://jsfiddle.net/Z9cXM/1/

+0

我也看到這段代碼,但在這段代碼中的日期格式是28/01/2013.i有像2013年9月28日那樣的日期格式。 –

+0

@jitendrakumar,使用[date.js](http://www.datejs.com/)只需下載並像任何其他外部JS一樣將其導入到您的文件! – rps

+0

謝謝@ rps,用這個date.js解決問題。 –

1

要轉換給定的日期爲一個字符串,只是跳過此步驟:

var datefrom = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 
var dateto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 

    if (datefrom > dateto) { 
     alert("Success"); 
     } 
    else { 

    } 
1

只是比較兩個Date對象已將其轉換爲字符串前:

var dateTypeVar = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 
var dateTypeVarto = $('#<%= txtFDateEdu.ClientID %>').datepicker('getDate'); 

if (dateTypeVar > dateTypeVarto) { 
    ... 
} 

的比較操作將自動執行的價值通過.valueOf()這兩個日期對象,即自1970/01/01 00:00:00以來經過的毫秒數。