求助!Javascript如何计算两个日期之差?

被老师整吐血,请问大虾们比如今天是2010年1月1日,要求算出和2010年12月31日之间的时间差,如"今天和2010年12月31日24时0分0秒相差x天x时x分x秒
"该怎么写?请给出详细的程式!!谢谢!!
而且在开头要求用提示框输入今天的日期。
ps:我是学经济的!!摊上这么个变态老师!
万分感谢!!!!

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>

<script type="text/javascript">
function count()
{
alert("现在的日期是:"+new Date().toLocaleString());

var date1=new Date("2010/12/31"); //2010年12月31日0时0分0秒
var date2=new Date(); //此时的日期

var date3=date1.getTime()-date2.getTime(); //时间差的毫秒数

//计算出相差天数
var days=Math.floor(date3/(24*3600*1000));

//计算出小时数
var leave1=date3%(24*3600*1000); //计算天数后剩余的毫秒数
var hours=Math.floor(leave1/(3600*1000));

//计算相差分钟数
var leave2=leave1%(3600*1000); //计算小时数后剩余的毫秒数
var minutes=Math.floor(leave2/(60*1000));

//计算相差秒数
var leave3=leave2%(60*1000); //计算分钟数后剩余的毫秒数
var seconds=Math.round(leave3/1000);

alert("今日距2010年12月31日0时0分0秒 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒");

}
</script>
</head>

<body onload="count()">

</body>
</html>

如果要在开头用提示框输入今天的日期,就将
alert("现在的日期是:"+new Date().toLocaleString());
var date1=new Date("2010/12/31");
var date2=new Date();
换成
var today=window.prompt('请输入今天的日期:','2010/1/4');
var date1=new Date("2010/12/31");
var date2=new Date(today);
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-04
//直接对date1.getDate()加减就行
var date1=new Date("2003/01/01")
alert(date1.toLocaleDateString())
date1.setDate(date1.getDate()+28)
alert(date1.toLocaleDateString())
第2个回答  2010-01-05
Date类中有个成员函数valueOf()
如果用date1.valueOf()减去date2.valueOf(),
得到的结果是date1比date2大多少毫秒,有了这个相差的
毫秒数值,你可以计算其成其他单位了。
第3个回答  2015-10-21
var time0 = date.getTime()-date1.getTime();
你获得的是俩个时间的毫秒数,长整型的数字,然后根据你的需求来操作吧
相似回答