您的位置:首页 > Web前端 > JavaScript

js计算两个日期相差天数

2017-02-09 11:05 295 查看
/**
* 两个日期相隔天数,时间格式:yyyy-MM-dd
* 第一个参数不传, 表示当前日期
*/
function dateDiff(sDate1, sDate2){
if(sDate1 == sDate2){
return 0;
}
if(!sDate1){
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
sDate1 = year+"-"+month+"-"+day;
}
var  aDate,  oDate1,  oDate2,  iDays ;
aDate  =  sDate1.split("-") ;
oDate1  =  new Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0]);//转换为Mm-dd-yyyy格式,这种date的构造方式在苹果手机会报错,见解释
aDate  =  sDate2.split("-");
oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0]);
iDays  =  parseInt(Math.abs(oDate1  -  oDate2)/1000/60/60/24);    //把相差的毫秒数转换为天数
return  iDays;
}


解释:

以上方式在pc和Android上测试都是正常的, 但是在iPhone上测试时,日期的构造函数不起效。 所有就换用date对象的另一种构造函数

 oDate1 = new Date('年', '月'-1, '日'); //月份是从0开始的, 在计算时需要注意月份的加减操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息