//这就是我的想法..但我猜当前的日期格式和指定的日期格式是不同的。请帮忙。
`<script>
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date();
var secondDate = new Date(2016,02,20);
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
document.getElementById("demo").innerHTML =diffDays;
</script>`
答案 0 :(得分:0)
您可以使用类似
的内容(new Date(new Date(2016, 01, 05).toDateString()).getTime() - new Date(new Date().toDateString()))/(24*60*60*1000)
新Date()返回的时间与新Date(yyyy,mm,dd)之间存在差异。首先将返回当前时间的日期,第二个将返回日期,时间为00:00 am。这将在时间戳上产生差异,因此结果会有所不同。
如果您有更多与日期相关的操作,您可以随时使用momentjs。
答案 1 :(得分:0)
Date.prototype.getTime()会返回以毫秒为单位的差异,因此您应该在 var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date();
var secondDate = new Date(2016,02,20);
var diffDays = Math.abs(firstDate - secondDate);
document.getElementById("demo").innerHTML = Math.round (diffDays/oneDay);
(1000 * 3600 * 24)上设置时差。
onCancelled()
答案 2 :(得分:0)
你可以这样做 -
<script>
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date();
var secondDate = new Date(2016,02,20);
var diffDays = 'expired';
if(secondDate>=firstDate){
diffDays = parseInt((secondDate - firstDate)/oneDay) + ' days left';
}
document.getElementById("demo").innerHTML =diffDays;
</script>
这里是小提琴fiddle