js计算两个日期相差天数
/**
* 两个日期相隔天数,时间格式: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开始的, 在计算时需要注意月份的加减操作。
还没有评论,来说两句吧...