var currentTime = Date.now()
// 获取指定时间时间戳
// 注1:这里写的是2012年9月1日0时0分0秒
// 注2:Javascript中月份是实际数字减1
var targetTime = (new Date(2012, 8, 1, 0, 0, 0)).getTime()
// 获取差值,如果指定日期早于现在,则为负数
var offsetTime = targetTime - currentTime
// 求绝对值,获取相差的时间
offsetTime = Math.abs(offsetTime)
// 将时间转位天数
// 注:Javascript中时间戳的单位是毫秒
var offsetDays = Math.floor(offsetTime / (3600 * 24 * 1e3))
可以写成通用的方法:
function getOffsetDays(time1, time2) {var offsetTime = Math.abs(time1 - time2)
return Math.floor(offsetTime / (3600 * 24 * 1e3))
}
// 获取相隔天数
getOffsetDays(Date.now(), (new Date(2012, 8, 1)).getTime())
完整代码如下:<html>
<head>
<title>js 两个日期间隔月数</title>
<script type="text/javascript">
window.onload = function () {
document.getElementById("btn_Diff").onclick = function () {
var d1 = document.getElementById("txt_Date1").value//日期1
var d2 = document.getElementById("txt_Date2").value//日期2
//年*12+月
var m1 = parseInt(d1.split("-")[1].replace(/^0+/, "")) + parseInt(d1.split("-")[0]) * 12
var m2 = parseInt(d2.split("-")[1].replace(/^0+/, "")) + parseInt(d2.split("-")[0]) * 12
alert(m2-m1)
}
}
</script>
</head>
<body>
<input id="txt_Date1" type="text" value="2013-09-25"/>
<input id="txt_Date2" type="text" value="2014-01-15"/>
<input id="btn_Diff" type="button" value="Diff"/>
</body>
</html>