JS获取日期的时候数字形式月份比实际大一个月为啥

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
setInterval(daojishi,1000);
function daojishi() {
// body...
var oP = document.getElementById('show');
var iNow = new Date();
var ifuture = new Date(2019,2,27,20,35,3);
// var ifuture = new Date("March 27,2019 20:35:03");
// var t = (ifuture - iNow)/1000;
var t = Math.floor((ifuture - iNow)/1000);//取整数,变成秒
var str = Math.floor(t/86400) + '天' + Math.floor(t%86400/3600) + '时' + Math.floor(t%86400%3600/60) + '分' + t%60+ '秒';
// alert(ifuture);
oP.innerHTML = str;

}

//输出值以毫秒为单位;
// 天:Math.floor(t/86400)
// 时:Math.floor(t%86400/3600)
// 分:Math.floor(t%86400%3000/60)
// 秒:Math/floor(t%60)

</script>
</head>
<body>
<p id="show" style="font-size: 30px;"></p>
</body>
</html>

js是用0到11来表示月份的(但日却是从1起算的),这是个大坑,初学者很容易入坑

比方说要得到一个2月27日的日期应该这样:

var ifuture = new Date(2019,1,27,20,35,3);

温馨提示:答案为网友推荐,仅供参考
相似回答