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

los*_*193 4 javascript momentjs

我的日期范围是

var currDay = Jan.1
var birthday = Feb.15
Run Code Online (Sandbox Code Playgroud)

我知道找出周数的差异是

currDay.diff(birthday, 'week')
Run Code Online (Sandbox Code Playgroud)

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

H77*_*H77 8

您可以利用duration.

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

来自momentjs 文档

请注意,与持续时间的其他 getter 不同,周被计为天的子集,并且不会从天计数中扣除。

注意:如果您想要总周数,请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.");
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)