例如,它应该返回的实际年龄是47 ...使用此代码它返回我48.我正在以正确的方式应用逻辑并计算days, months and year.
中的年龄
答案 0 :(得分:2)
假设12个月30天是一年 - 这是最错误的(360天,而事实上1年平均接近365.25天)。
您应该做的是分别计算每个细分:
var now = new Date();
var years = now.getFullYear()-formattedDate.getFullYear();
var months = now.getMonth()-formattedDate.getMonth();
var days = now.getDate()-formattedDate.getDate();
if (months < 0) {
months += 12;
years -= 1;
}
if (days < 0) {
months -= 1;
// now days here is a little trickier - we need the number of days in last month
now.setTime(now.getTime() - now.getDate()*24*60*60*1000);
days += now.getDate(); // <-- now is last day of last month now, so we know how many days there were and add this number
}
答案 1 :(得分:1)
首先看一年是365,25天,而不是30 * 12 = 360(至少在格里高利历中)
答案 2 :(得分:1)
google: date diff js
将有助于举例。
注意:强>
P.S。 ExtJS里面有很好的日期处理工具。