javascript - 通过 jQuery/javascript 获取特定日期的新年龄

标签 javascript jquery date

我有一个场景,页面显示特定日期(例如 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));
}

最佳答案

类似这样的内容应该会根据月份向您提供向下或向上舍入的年龄:

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

其中生日是可以在 Date 的构造函数中使用的任何内容

关于javascript - 通过 jQuery/javascript 获取特定日期的新年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508997/

相关文章:

javascript - 扩展 Backbone.View 时的奇怪行为

javascript - Node.js + Socket.io 超出最大调用堆栈大小

javascript - 将 jQuery UI Slider 与 Checkbox 事件绑定(bind)的问题

javascript - $_POST 不从 .post 读取变量值

jquery - 滑出表单 CSS 定位

javascript - Jquery UI 对话框在 ssl 页面上不起作用

javascript - 在打印 body 标记后更改 onload 事件,在文档正文中使用 jQuery .ready()

java - 获取从明天到 60 天之后的所有日期,然后循环遍历它们

c++ - 如何判断我的 struct tm 是否处于无效状态?

java - 如何在 Java 中处理时间