gpt4 book ai didi

Javascript 从出生日期计算年龄

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:14 24 4
gpt4 key购买 nike

我将我的日历选择 date of birth 传递给以下用于计算年龄的 JS 函数:

var DOBmdy = date.split("-"); 
Bdate = new Date(DOBmdy[2],DOBmdy[0]-1,DOBmdy[1]);
BDateArr = (''+Bdate).split(' ');
//document.getElementById('DOW').value = BDateArr[0];
Cdate = new Date;
CDateArr = (''+Cdate).split(" ");
Age = CDateArr[3] - BDateArr[3];

现在,让我们说,输入年龄是:1983 年 8 月 2 日,年龄计数是:28,而由于八月份还没有过去,我想展示当前年龄 27 而不是 28

任何想法,我如何编写逻辑,用我的 JS 函数计算年龄 27 完美

谢谢!

最佳答案

出生日期为 1983 年 8 月 2 日,则现在与该日期之间的毫秒差为:

var diff = new Date - new Date('1983-08-02');

天数的差异是(1 秒 = 1000 毫秒,1 小时 = 60*60 秒,1 天 = 24 * 1 小时)

var diffdays = diff / 1000 / (60 * 60 * 24);

年差(因此,年龄)变为(0.25 表示闰年):

var age = Math.floor(diffdays / 365.25);

现在试试

diff = new Date('2011-08-01') - new Date('1983-08-02'); //=> 27
diff = new Date('2011-08-02') - new Date('1983-08-02'); //=> 28
diff = new Date('2012-08-02') - new Date('1983-08-02'); //=> 29

因此,您的 javascript 可以重写为:

var Bdate   = new Date(date.split("-").reverse().join('-')),
age = Math.floor( ( (Cdate - Bdate) / 1000 / (60 * 60 * 24) ) / 365.25 );

[edit] 没有给予足够的重视。 date.split('-') 给出数组 [dd,mm,yyyy],因此反转它会得到 [yyyy,mm,dd]。现在再次使用“-”连接,结果是字符串 'yyyy-mm-dd',这是新 Date 的有效输入。

关于Javascript 从出生日期计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com