在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年。
展开
 我来答
秦爱传c5
2013-08-02 · TA获得超过2051个赞
知道小有建树答主
回答量:635
采纳率:50%
帮助的人:315万
展开全部
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 + "年");

 已考虑闰年

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wy_1900
2013-08-02 · TA获得超过4503个赞
知道大有可为答主
回答量:4260
采纳率:63%
帮助的人:3387万
展开全部
分别格式化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");

}
追问
这个好像不能判断闰年的吧?都是按照365计算了,如果相差个10多年不就不准了吗?
追答
没错,不包括闰年,不过4年多1天,40年多10天,但结果还是40年,不影响你的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
穷图末录
2013-08-02 · TA获得超过457个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:153万
展开全部
先比较年,差值为x
然后比较月和日
if(a.yue < b.yue || (a.yue==b.yue && a.ri < b.ri))x=x-1;
不就行了吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式