JavaScript:检查日期A是否最多比日期B早3次/晚

时间:2011-02-17 10:33:47

标签: javascript date validation

我必须编写一个JavaScript函数来检查两个日期(格式为dd/MM/yyyy)的时间间隔是否最多为3个月。

我可以从两个文本框中检索这两个值(无需检查格式,我已经获得了一个自动格式化日期的日历控件)。

我几乎没有使用JavaScript的经验。你能救我吗?

示例:

15/2 / 2011,13 / 2/2011 - >返回真实的 6/1 / 2011,5 / 10/2010 - >返回错误

我已经检查过日期A晚于日期B(日历是否适用于我)

2 个答案:

答案 0 :(得分:2)

您可以找到两个日期之间的差异并相应地返回值。

function days_between(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)

    // check converting back to days and return
    return (Math.round(difference_ms/ONE_DAY) >90);
}

如果您无法正确检查或解析日期,则应使用

    var x=txtDate1.split("/");   //Here txtDate1 and txtDate2 are values from your textbox   
    var y=txtDate2.split("/");
  //date format(Fullyear,month,date) 

    var date1=new Date(x[2],(x[1]-1),x[0]);  
    var date2=new Date(y[2],(y[1]-1),y[0])

答案 1 :(得分:2)

无需大量代码:

function days_between(date1, date2) {
    return Math.round(Math.abs(date1 - date2) / (1000 * 60 * 60 * 24)) > 90;
}

date1date2Date个对象,例如

 var date1 = new Date('mm/dd/yyyy');