js 关于两个日期之间的天数

JavaScript059

js 关于两个日期之间的天数,第1张

<!DOCTYPE HTML>

<html lang="en-US">

<head>

<meta charset="UTF-8">

<meta name="keywords" content="白菜编辑部">

<title>白菜编辑部</title>

<style type="text/css">

</style>

<script type="text/javascript">

var test = function ()

    {

    var reg = /[^\d]/g

    var t1 = document.getElementById ('txt1')

    var t2 = document.getElementById ('txt2')

    var start = new Date (t1.value.replace (reg, '/'))

    var end = new Date (t2.value.replace (reg, '/'))

    var day = Math.floor (Math.abs (start.getTime () - end.getTime ()) / 1000 / 60 / 60 / 24)

    alert("之间的天数:" + day)

    }

</script>

</head>

<body>

<input type="text" value="2014-11-14" id="txt1" />

<input type="text" value="2014-12-01" id="txt2" />

<button onclick="test()">test</button>

</body>

</html>

// 获取当前时间时间戳

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())