繁体   English   中英

在Javascript中比较数组中的两个日期

[英]Comparing two dates in array in Javascript

我有一个表单,我从输入标签中获取两个日期。 我需要验证和比较一个日期应该总是大于另一个日期。 这是下面的javascript:

function validateDD(gateout_plnd_dt){
    var dt_pat = /^[0-9]{2}-[0-9]{2}-[0-9]{4}$/;
    var alpha = /^[a-zA-Z0-9\s\.\-]+$/
    var int = /^[0-9.]+$/;
    var gateout_plnd_dt = document.getElementsByName('gateout_plnd_dt[]');
    var gate_in_dt = document.getElementsByName('gate_in_dt[]');


    for(var i=0,j=0; i<gateout_plnd_dt.length,j<gate_in_dt.length; i++,j++){



        if(gateout_plnd_dt[i].value< gate_in_dt[j].value){
        alert((gateout_plnd_dt[i].value));
        alert(gate_in_dt[j].value);
         return false;
        }
        }


    }

我需要将它从字符串转换为我无法这样做的日期对象。 将非常有助于完成它。 谢谢。

试试这个我为你工作。

var parts ='you string'.split("-");
var mydate = new Date(parts[2],parts[0],parts[1]); 

尝试这个

for(var i=0; i<gateout_plnd_dt.length; i++){

    out_date = gateout_plnd_dt[i].split("-");
    in_date = gate_in_dt[i].split("-");
    gateout_date = new Date(out_date[1],out_date[0],out_date[2]).getTime()
    gatein_date = new Date(in_date[1],in_date[0],in_date[2]).getTime()

    if(gateout_date < gatein_date ){
    alert(gateout_plnd_dt[i]);
    alert(gate_in_dt[i]);
     return false;
    }
}

将日期转换为时间戳。 出于这个原因,我不建议使用库。

 function datetotimestamp(date){
    var date=date.split("-");
    var newd=date[1]+"/"+date[0]+"/"+date[2];
    return new Date(newd).getTime();
    }

console.log( datetotimestamp("26-02-2012") < datetotimestamp("25-02-2012")) //返回false

要比较数组中的两个或多个值,请使用额外的函数

var compareinarray = function(array) {
    for(var i = 1; i < array.length; i++)    {
        if(datetotimestamp(array[i]) > datetotimestamp(array[i-1]))
            return false;
    }
    return true;
}

var arr = ["26-02-2012", "23-02-2012"];
var res = compareinarray(arr); 
console.log(res)

根据您的情况和数组复杂性更新 compareinarray 函数 var。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM