【问题标题】:Get new age on a particular date through jQuery/ javascript通过 jQuery/javascript 在特定日期获取新年龄
【发布时间】: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


【解决方案1】:

这样的事情应该会根据月份为您提供向下或向上四舍五入的年龄:

function getAge(birthday) {
    var diff = new Date(new Date() - new Date(birthday))
    return diff.getFullYear() - 1970 + (diff.getMonth()>=6?1:0)
}

生日是可以在Date的构造函数中使用的任何东西

【讨论】:

  • 哇!这就是我要找的。谢谢 Danilo,感谢您在这方面的帮助。
【解决方案2】:

更新和工作的代码。谢谢达尼洛。

var newDate = $("#NewDate").val();
if (newDate != null && newDate != '') {
    var currDCD = new Date($("#CurrentDate").val());
    var newDCD = new Date(newDate);
    var diff = new Date(newDCD - currDCD);
    var ageDiff = diff.getFullYear() - 1970 + (diff.getMonth() >= 6 ? 1 : 0);
    var currAge = parseInt($("#CurrentOwnerAge").val());
    $("#NewAge").val(currAge + ageDiff);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多