2011-02-17 82 views
0

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

我可以从两个文本框中检索两个值(不需要检查格式,我已经给出了一个日历控件,可以自动正确地设置日期格式)。

我几乎没有使用JavaScript的经验。你可以帮我吗?

例子:

15/2/2011,13/2/2011 - >返回true
6/1/2011,5/10/2010 - >返回false

我已经检查日期A晚于日期B(日历为我执行)

回答

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'); 
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]) 
+0

嗨,date1和date2是什么类型?他们是必须从dd/mm/yyyy转换的字符串吗?我如何确保Javascript知道格式?谢谢 – 2011-02-17 10:47:36