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