2011-02-17 102 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