2016-11-16 12 views
-3

Wie bekomme ich das maximale Datum von einem Array? Ich versuchte das, aber es gibt ungültiges Datum zurückWie finden Sie das maximale Datum in einem Array?

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

Kann jemand irgendeine Idee teilen, um das maximale Datum zu finden.

I Jsfiddle zum Training verwendet hier ist, dass Code

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

die auf jsfiddle funktioniert gut, aber nicht auf Entwicklungsumgebung

+1

, dass Ihre tatsächliche Ist Array? Wenn dies der Fall ist, handelt es sich um eine ungültige Syntax. Die Daten müssen als Strings oder in einem 'Date()' Objekt gespeichert werden. Auch ich nehme an mit "max" date meinst du das späteste Datum? –

+2

Bitte bearbeiten Sie Ihre Frage und formatieren Sie alle zusätzlichen Code, den Sie hinzufügen möchten - es ist nicht in Kommentaren –

+0

oben Code funktioniert gut auf Jsfiddle, aber auf der Entwicklung funktioniert es nicht – yuvi

Antwort

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

Die Formatierung dieser sollte wirklich behoben werden. Bitte denken Sie auch daran, mehr Kontext dafür zu geben, da Code-only-Antworten nicht erwünscht sind. – EJoshuaS

Verwandte Themen