[英]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.