javascript - 使用 moment.js 查找日期范围之间的完整周数和天数

标签 javascript momentjs

我的日期范围是

var currDay = Jan.1
var birthday = Feb.15

我知道找到周数的差异是

currDay.diff(birthday, 'week')

但是,有没有办法找到完整的周数和剩余的天数?

最佳答案

您可以使用 duration .

用这个可以得到年、月(不包括年)和日(不包括年、月)。唯一的问题是周数是使用天数计算的,因此如果您要获得周数,您仍然需要获得天数的余数。

来自 momentjs docs :

Pay attention that unlike the other getters for duration, weeks are counted as a subset of the days, and are not taken off the days count.

注意:如果您想要总周数,请使用 asWeeks() 而不是 weeks()

var currDay = moment("2018-01-01");
var birthday = moment("2018-02-16");

var diff = moment.duration(birthday.diff(currDay));

console.log(diff.months() + " months, " + diff.weeks() + " weeks, " + diff.days()%7 + " days.");

console.log(Math.floor(diff.asWeeks()) + " weeks, " + diff.days()%7 + " days.");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

关于javascript - 使用 moment.js 查找日期范围之间的完整周数和天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423221/

相关文章:

javascript - 日期和时间的问题是对话取决于本地时区

angular - 如何在 Moment js 中设置有效的空日期?

javascript - AngularJS 测试 - 使用 $http 和 then() 测试 AngularUI 的 typeahead

javascript - 如何通过表 ID 选择表中所有具有类名的复选框

javascript - 在 Node 6 中使用 async/await 和 Babel

javascript - momentjs 仅用于时间值

javascript - Meteor:变量随机设置为 NaN

javascript - 在javascript中从另一个数组重新构建对象数组

javascript - 忽略多个选择框-jquery中的第一个选项

javascript - 在 Node.JS 中输出用户时区时间戳的最佳方式