<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>JS計算兩個日期之間的天數</title> </head> <body> <script type="text/javascript"> function btnCount_Click(){ s1 = "2006-12-18" s2 = "2007-1-5" alert("第一個日期;"+s1+"/n第二個日期:"+s2+"/n相差"+getDays(s1,s2)+"天") } //計算天數差的函數,通用 function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-") oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //轉換為12-18-2006格式 aDate = sDate2.split("-") oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒數轉換為天數 return iDays } function getDays(date1 , date2){ var date1Str = date1.split("-");//將日期字符串分隔為數組,數組元素分別為年.月.日 //根據年 . 月 . 日的值創建Date對象 var date1Obj = new Date(date1Str[0],(date1Str[1]-1),date1Str[2]); var date2Str = date2.split("-"); var date2Obj = new Date(date2Str[0],(date2Str[1]-1),date2Str[2]); var t1 = date1Obj.getTime(); var t2 = date2Obj.getTime(); var dateTime = 1000*60*60*24; //每一天的毫秒數 var minusDays = Math.floor(((t2-t1)/dateTime));//計算出兩個日期的天數差 var days = Math.abs(minusDays);//取絕對值 return days; } </script> <input name="" type="button" onclick="btnCount_Click()" value="計算天數" /> </body> </html>