如何使用Moment.js在X天内获得我的年龄
How do I get my age in X days using Moment.js?
我当前的代码是
function ageInNDays(days) {
return moment.duration(
moment('1990-10-10').diff(
moment().add(days, 'days'))
);
}
我.add(days, 'days')
到今天,然后将其与过去的某个日期进行比较。然而,moment.duration
并不总是返回经过的日历年数。它将一年定义为365天,并返回其中经过的年数。
编辑:我仍然在寻找我的年龄作为一个数年。如果可能的话,可以使用类似于moment.duration()的20年、5个月和10天格式。
如果我的生日是1992年3月5日,那么我的年龄只会在日历超过3月5号时增加。我的剩余年龄(天)只有在每个月的5号过去时才能重置。
编辑2:我现在唯一的想法是类似的东西
age = moment().add(days, 'days').year() - moment('1995-01-05').year()
if ((today's date + added days) < birthday's date)
--age
从文档中,
如果没有上下文,试图将年转换为天是没有意义的。使用moment#diff计算两个时刻之间的天数或年份比使用Durations要好得多。
所以看起来使用diff就是答案:
function ageInNDays(days) {
return moment().add(days, 'days').diff('1990-10-10', 'years', true);
}
// ageInNDays(1000);
// 27.977483271480484
请注意,这会给你分数年数(根据第三个论点)。如果你不想四舍五入,你可以截断它(默认实现是这样做的):
function ageInNDays(days) {
return Math.floor(moment().add(days, 'days').diff('1990-10-10', 'years', true)) + ' years';
}
// ageInNDays(1000);
// 27 years
如果你真的想用天来计算年龄,你可以使用:
moment.duration(moment() - moment('1990-10-10')).asDays();
更新
您也可以使用它将天数添加到当前年龄:
function ageInNDays(days) {
var age = moment.duration(moment() - moment('1990-10-10'));
return age.add(days, 'd').asDays();
}
为小数差异添加参数布尔值true
var currentDate = new Date();
var diff = moment(currentDate).diff('1990-10-10', 'years',true);
console.log("Year", diff);
示例
答案为21.23,具体取决于
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 我的单元测试选项是什么
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 我的职位回报太快了,如何做出承诺
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何识别我的网站中的慢速设备
- 如何将JSON数据导入我的ejs模板
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 知道为什么我的旋转木马不会自动更改图片吗
- 我的模板未被解析
- 无法将数据从firebase获取到我的html页面
- 角度图表;t显示在我的页面中
- 我的AngularJS表达式没有'不起作用
- 将电视直播频道从网站嵌入我的网站
- /undefined在我的404错误日志中多次出现
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 我的javascript for循环不起作用
- 如何使用Moment.js在X天内获得我的年龄