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开始的, 在计算时需要注意月份的加减操作。

你可能感兴趣的:(js)