2016-11-16 34 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()对象中。另外,我假设'最大'日期是指最近的日期? –

+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