2017-05-07 50 views
0

在jquery中,当输入日期少于两个月或大于今天的日期时,我想抛出一个错误。我开始比较两个月前的日期。输入日期格式为dd/mm/yyyy。如何比较输入日期不到两个月或大于今天的日期

我做了如下,但它不工作

var tbStartDate = "07/05/2017"; 
     var twoMonthsOldDate = new Date(); 
         twoMonthsOldDate = new Date(twoMonthsOldDate .setMonth(twoMonthsOldDate .getMonth() - 2)); 
         alert(twoMonthsOldDate); 
         alert(tbStartDate); 
         if (tbStartDate < twoMonthsOldDate) { 
          alert('is less'); 
         } 

回答

0

怎么是这样的:

var tbStartDate = new Date("07/05/2017").getTime()/1000; 
     var twoMonthsOldDate = new Date(); 
         twoMonthsOldDate = new Date(twoMonthsOldDate.setMonth(twoMonthsOldDate.getMonth() - 2)).getTime()/1000; 
         console.log(twoMonthsOldDate); 
         console.log(tbStartDate); 
         if (tbStartDate < twoMonthsOldDate) { 
          alert('is less'); 
         } 

基本上,我转换您的日期划时代这样我就可以对它们进行比较。就像你以前一样,它们是不同的格式,所以你不能有效地比较。

现在,您可以添加一个名为moment.js的库,并将其修剪并使其更具可读性。

var tbStartDate = moment("02/05/2017"); 
     var twoMonthsOldDate = moment().subtract(2, 'month'); 
         if (twoMonthsOldDate.isAfter(tbStartDate)) { 
          alert('is less'); 
         } 
+0

我照你所说的做了,但是如果输入少于两个月,它就不会发出警报。我不需要比较时间和日期是以(dd/mm/yyyy格式)var inputDate = new Date(tbStartDate).getTime()/ 1000; var twoMonthsOldDate = new Date(); (2MonthsOldDate.getMonth() - 2))。getTime()/ 1000;(2MonthsOldDate.getMonth() if(inputDate ChinnaR

0

这是您的解决方案。

<script> 

var inputDate = new Date('05/04/2017'); 
var today = new Date(); 
var m2_old = new Date(); 

m2_old = new Date(m2_old.setMonth(m2_old.getMonth()-2)); 

if(inputDate > today) { 
    console.log(inputDate," is greater than today ..."); 
} else if(inputDate > m2_old) { 
    console.log(inputDate," is less than two months old ..."); 
} else { 
    console.log(inputDate," is older or equal than two months..."); 
} 


</script> 
相关问题