javascript 日期相减 涉及到时分秒

2025-05-08 19:23:21
推荐回答(5个)
回答1:

如果日期是字符串形式,先将字符串转换为日期,如:
var s1 = new Date("2011-03-31 00:58:30" );
var s2 = new Date("2011-04-01 08:58:48" );
然后用getTime()取得对象的毫秒表示相减
var s3 = s2.getTime() - s1.getTime();
得到相差的毫秒数
然后根据1天=24小时=(24*60)分钟=(24*60*60)秒=(24*60*60*1000)毫秒
var tianshu = s3 / (24*60*60*1000);
这就得到了相差天数

全部手动打出来的,谢谢采纳。

回答2:

/*字符转日期*/StringToDate=function(DateStr){if(typeof DateStr=="undefined")return new Date();if(typeof DateStr=="date")return DateStr;var converted = Date.parse(DateStr);var myDate = new Date(converted);if(isNaN(myDate)){DateStr=DateStr.replace(/:/g,"-");DateStr=DateStr.replace(" ","-");DateStr=DateStr.replace(".","-");var arys= DateStr.split('-');switch(arys.length){case 7 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5],arys[6]);break;case 6 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5]);break;default: myDate = new Date(arys[0],--arys[1],arys[2]);break;};};return myDate;}

var s1="2011-03-31 00:58:30" var s2="2011-04-01 08:58:48"

alert(parseInt((StringToDate(s1)-StringToDate(s2)) / 1000)) /*返回秒*/
alert(parseInt((StringToDate(s1)-StringToDate(s2)) / 86400000)) /*返回天*/
/*
switch (strInterval) {
case 's' :return parseInt((dtEnd - dtStart) / 1000);
case 'n' :return parseInt((dtEnd - dtStart) / 60000);
case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));
case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
}
*/

回答3:

st,second,sign)
{
fArray = first.split(sign);
sArray = second.split(sign):
var fDate = new Date(fArray[0],fArray[1],fArray[2]);
var sDate = new Date(sArray[0],sArray[1],sArray[2]);

var t = Math.abs(fDate.getTime()-sDate.getTime());
var days = t/1000*60*60*24;
return days;
}

如果你的日期格式可以是2002-2-12,
sign为间隔符号。

也就是在下面的代码中,你调用的时候可以是这样
compareDate("2002-2-12","2002-1-1","-")

回答4:

回答5:

Calendar cd = Calendar.getInstance();//先实例化对象
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

String fristString=df.format(cd.getTime());
String secondString=df.format(userList.getRequdate());
Date fristDate=null;
Date secondDate=null;
try{
fristDate=df.parse(fristString);
secondDate=df.parse(secondString);
}catch(Exception e) {

}
int intday=(int)((fristDate.getTime()-secondDate.getTime())/(24*60*60*1000));