2016-11-16 14 views
-3

配列から最大日付を取得する方法は?私はこれを試みましたが、無効な日付を返しています配列内の最大日付の検索方法は?

var dates = [2016/11/10,2016/11/20,2016/11/30] 
var maxDate = new Date(Math.max.apply(null, dates)); 

誰もが最大の日付を見つけるためにアイデアを共有することはできます。

私はここでワークアウトにJsfiddleを使用しているコード

var data = [ ['2015/04/21'], ['2015/04/21'], ['2015/04/22'], ['2015/05/23'], ['2015/04/24'], ['2015/04/29']] 

var dates = []; for (i = 0; i < data.length; i++) { dates.push(new Date(data[i][0])); } 

Array.prototype.max = function() { return Math.max.apply(null, this); }; 

Array.prototype.min = function() { return Math.min.apply(null, this); }; 

alert("Max: "+new Date(dates.max())+"\n\n"+ "Min: "+ new Date(dates.min())); 
開発環境にjsfiddleに正常に動作していないが、

+1

は、その実際はありますアレイ?そうであれば、無効な構文です。日付は文字列として、または 'Date()'オブジェクトに格納する必要があります。また、私は 'max'日付であなたは最新の日付を意味すると思いますか? –

+2

あなたの質問を編集して追加したいコードを書いてください - それはコメントでは読めません –

+0

上記のコードはJsfiddle上で正常に動作していますが、開発中には動作していません – yuvi

答えて

1

function find(){ 
 
\t \t \t \t \t 
 
\t \t var data = [['2015/04/21'], ['2015/04/21'], ['2015/04/22'], ['2015/05/23'], ['2015/04/24'], ['2015/04/29']] 
 
\t \t var dates = []; 
 
\t \t for (i = 0; i < data.length; i++) 
 
\t \t { 
 
\t \t \t dates.push(new Date(data[i][0])); 
 
\t \t } 
 
\t \t \t 
 
\t \t var maxDate=new Date(Math.max.apply(null,dates)); 
 
\t \t alert(maxDate); 
 
\t \t 
 
\t }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<a href="#" class="copy-times" onclick="find()">find max</a>

-3
var fmdt = fncgetDBFormatDate($("#<%=txt_Date.ClientID %>").val()); 

var todt = max(); 

if (fmdt != '' && todt != '') { 
    if (fmdt > todt) { 
    errMsg = "Date should be lesser than cheque maximum date "; 
    } 
} 

function max() { 
    var dates = []; 
    var data1 = $("#jqxgrid2").jqxGrid('getrows'); 
    for (i = 0; i < data1.length; i++) { 
    var val1 = $('#jqxgrid2').jqxGrid('getcellvalue', i, "Date"); 
    dates.push(new Date(convert_date(val1))); 
    } 

    Array.prototype.max = function() { 
    return Math.max.apply(null, this); 
    }; 

    var maxdate = new Date(Math.max.apply(null, dates)); 
    return convert_date(maxdate); 
} 

function convert_date(str) { 
    var date = new Date(str), 
    mnth = ("0" + (date.getMonth() + 1)).slice(-2), 
    day = ("0" + date.getDate()).slice(-2); 
    return [date.getFullYear(), mnth, day].join("/"); 
} 
+0

これのフォーマットは本当に修正する必要があります。また、コード専用の回答はお勧めしませんので、これ以上の文脈を与えることを検討してください。 – EJoshuaS

関連する問題