js 求两日期之差,ie与其他浏览器区别

今天遇到这样一个简单的问题:根据提供的两个日期,求出差值。想想很简单,得到两个日期的毫秒数,作差然后换算成相应单位即可:

 

代码如下:

	
      //获得两个日期间隔年数
	function yearDiff(beginDate,endDate){
		//日期差 毫秒数
		var miniSecond=endDate.getTime()-beginDate.getTime();
		
		return Math.floor(miniSecond/(24*3600*1000*360)); //间隔年份

		//return Math.floor(miniSecond/(24*3600*1000)); //间隔天数

	}    

  正常这样就实现了,但是很多时候,我们是在前台获得一个串形式的日期(如:‘2008-06-07‘),然后和现在日期作差。正常会把之前的转化为日期格式,然后再作差:

 

    var beginDate="2008-06-07";

      beginDate= new Date(beginDate);

      var nowDate=new Date();

    var diffYear= yearDiff(beginDate,nowDate);

  

  这样应该就好使了,亲测firefox没有问题,ie结果:NAN  。 后来发现是ie在解析beginDate转化的时候出现问题了。

beginDate = new Date(beginDate.replace(/-/g, "/"));

  这样ok!! 不知道什么情况,笔记

  2015-05-05 20:27

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。