我想要一个简单的文本框输入过去的日期,然后显示它从今天的日期开始的天数。我已经找到了几个如何使用javascript在你输入的两个日期之间进行操作的例子,但是没有只做一个日期和今天的日期。
要跟踪的当前日期是2010年4月2日,但它会随着时间的推移而改变。
答案 0 :(得分:1)
如果您不关心闰秒(:)
),您可以简单地从当时的日期中减去当前日期,从而获得以毫秒为单位的差异,然后将差额除以金额在一天内适合的毫秒数:
var then = new Date(2010, 03, 02), // month is zero based
now = new Date; // no arguments -> current date
// 24 hours, 60 minutes, 60 seconds, 1000 milliseconds
Math.round((now - then) / (1000 * 60 * 60 * 24)); // round the amount of days
// result: 712
答案 1 :(得分:1)
这是我用于倒数计时器的脚本。你可以拿出你不需要的任何部分来显示一天,时间等。
dateFuture = new Date(2010,2,4,23,59,59);
function GetCount(){
dateNow = new Date();
//grab current date
amount = dateFuture.getTime() - dateNow.getTime();
//calc milliseconds between dates
delete dateNow;
// time is already past
if(amount < 0){
document.getElementById('countbox').innerHTML="Now!";
}
// date is still good
else{
days=0;hours=0;mins=0;secs=0;out="";
amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs
days=Math.floor(amount/86400);//days
amount=amount%86400;
hours=Math.floor(amount/3600);//hours
amount=amount%3600;
mins=Math.floor(amount/60);//minutes
amount=amount%60;
secs=Math.floor(amount);//seconds
if(days != 0){out += days +" day"+((days!=1)?"s":"")+",<br />";}
if(days != 0 || hours != 0){out += hours +" hour"+((hours!=1)?"s":"")+",<br />";}
if(days != 0 || hours != 0 || mins != 0){out += mins +" minute"+((mins!=1)?"s":"")+",<br />";}
out += secs +" seconds";
document.getElementById('countbox').innerHTML=out;
setTimeout("GetCount()", 1000);
}
}
window.onload=function(){GetCount();}//call when everything has loaded
//-->
</script>
然后调用下面的div显示倒数计时器。
<div id="countbox"><div>