【发布时间】:2015-09-10 18:15:44
【问题描述】:
我有一个场景,页面在特定日期(例如 09/10/2015)显示用户的年龄 (30)。现在在选择新日期时,我必须使用新日期大于给定日期的 6 个月/182 天(例如 03/11/2016)的业务逻辑预先填充新的年龄字段,那么年龄应该是+1(例如年龄为 31 岁)。
我知道我们可以通过以下代码实现这一点。但我正在寻找一种在选择新日期时获得新时代的最佳方式。
var newDate = $("#NewDate").val();
if (newDate != null && newDate != '') {
var currDCD = new Date($("#CurrentDate").val());
var newDCD = new Date(newDate);
var yearsDiff = newDCD.getFullYear() - currDCD.getFullYear();
var day = 1000 * 60 * 60 * 24;
//Get last years days difference
var daysDiff = Math.floor((newDCD.setFullYear(currDCD.getFullYear() + (yearsDiff - 1)) - currDCD) / day);
var currAge = parseInt($("#CurrentAge").val());
//Set new owner age
$("#NewAge").val(currAge + (daysDiff > 182 ? yearsDiff : yearsDiff-1));
}
【问题讨论】:
-
你试过类似的方法吗? var newDate = new Date($("#NewDate").val()); var SixMonthsFromNow = new Date(newDate .setMonth(newDate .getMonth() - 6));然后只需比较两个日期。归功于这篇文章:stackoverflow.com/questions/23883749/…
-
这是从现在开始的六个月的检查,但我的要求是动态的,必须根据年数差异设置新的年龄,然后是去年的月数或天数。由于我们无法为 2016 年 1 月 10 日的日期设置新的年龄 +1,而我的当前年龄在 2015 年 12 月 31 日是 30 岁。
-
你可以使用momentJS,只要我在JS中接近日期时间,我就使用这个库momentjs.com
标签: javascript jquery date