在JS中,判断两个日期之间相隔多少年,有哪位高手能帮解决一下.
比如2012-05-05与2013-05-05之间相隔1年,而2012-05-06跟2013-05-05之间相隔小于1年,记做0年。包括多年计算,跨度最多可以20-30年...
比如2012-05-05与2013-05-05之间相隔1年,而2012-05-06跟2013-05-05之间相隔小于1年,记做0年。
包括多年计算,跨度最多可以20-30年。 展开
包括多年计算,跨度最多可以20-30年。 展开
3个回答
展开全部
var firstDate = new Date(2012,4,5);
var secondDate = new Date(2013, 4, 5);
var years=0;
while (firstDate.setFullYear(firstDate.getFullYear() + 1) <= secondDate)
{
years++;
}
alert("相差" + years + "年");
已考虑闰年
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分别格式化2个时间,然后检查差值,超过365天认为超过一年
就别考虑润年了
var d1 = "2012-10-27";
var d2 = "2012-11-28";
var tmp = d1.split("-");
var date1 = new Date(tmp[0],tmp[1]-1,tmp[2]);
tmp = d2.split("-");
var date2 = new Date(tmp[0],tmp[1]-2,tmp[2]);
if(date2.getTime() - date1.getTime() > 365 * 24 * 60 * 60 * 1000){
alert("Over 1 year");
}
就别考虑润年了
var d1 = "2012-10-27";
var d2 = "2012-11-28";
var tmp = d1.split("-");
var date1 = new Date(tmp[0],tmp[1]-1,tmp[2]);
tmp = d2.split("-");
var date2 = new Date(tmp[0],tmp[1]-2,tmp[2]);
if(date2.getTime() - date1.getTime() > 365 * 24 * 60 * 60 * 1000){
alert("Over 1 year");
}
追问
这个好像不能判断闰年的吧?都是按照365计算了,如果相差个10多年不就不准了吗?
追答
没错,不包括闰年,不过4年多1天,40年多10天,但结果还是40年,不影响你的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先比较年,差值为x
然后比较月和日
if(a.yue < b.yue || (a.yue==b.yue && a.ri < b.ri))x=x-1;
不就行了吗
然后比较月和日
if(a.yue < b.yue || (a.yue==b.yue && a.ri < b.ri))x=x-1;
不就行了吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询