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

本文介绍了一种在不同浏览器中处理日期字符串的方法,特别是在IE浏览器中遇到的问题及解决方案。通过将日期格式统一为适用于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

转载于:https://www.cnblogs.com/wawa0210/p/4480189.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值