比较javascript中的日期并不总是有效

时间:2017-02-15 10:39:13

标签: javascript date

我正在尝试比较两个日期以查看一个日期是否小于另一个日期,因此我格式化两个日期,然后检查过期日期是否小于今天,然后是否显示警告消息:

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; 

var yyyy = today.getFullYear();
if(dd<10){
          dd='0'+dd
} 
if(mm<10){
    mm='0'+mm
} 
var today = dd+'/'+mm+'/'+yyyy;

var ExpiryDate = result.VATExpiryDate;
var day = ExpiryDate.getDate();
 var month = ExpiryDate.getMonth()+1;
var year = ExpiryDate.getFullYear();
if(day<10){
      day='0'+day
} 
if(month<10){
      month='0'+month
} 
var ExpiryDate = day+'/'+month+'/'+year;

    if(ExpiryDate < today && result.VATAuthNo.length>0)
    {
          alert("Please note Vat Authorisation Date for " + result.Name + " has expired - " + ExpiryDate);
    }

但它似乎并不适用于所有日期。例如,如果到期日是2015年12月10日,则可以使用并显示警报消息。但是,如果日期是2016年6月21日,它就不起作用,即使该日期比今天还少。

3 个答案:

答案 0 :(得分:2)

您可以比较直接使用日期对象操作的日期,而不需要转换。 javascript是一个强大的语言伴侣。

`https://jsfiddle.net/Safoora/cpcygkno/6/`

Hope it will help.

答案 1 :(得分:0)

使用以下方法:

if( new Date(first).getTime() > new Date(second).getTime() ) {
  // code;
}

var date1 = new Date('2017-02-15');
var date2 = new Date('2017-02-15');

if( date1 === date2 ){
  console.log("bot are equal");
}
if( +date1 === +date2 ){
  console.log("bot are equal");
}

答案 2 :(得分:0)

您正在比较字符串 - 要获得正确的结果,请使用YYYY-mm-dd格式,而不是dd / mm / YYYY