cup*_*_of 5 javascript momentjs
我想使用 momentjs 获取任何月份的日历行数(周)
例如:
这将是5
这将是6
这是我必须处理的内容:
我将月份、月初和月底作为即时项目
const month; // (month moment obj)
const start = moment(month).startOf('month');
const end = moment(month).endOf('month');
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试过的(没有运气)
const weeks = end.diff(start, 'week'); // always gives 4
const weeks = moment.duration(end - start).weeks() + 1; // always gives 5
Run Code Online (Sandbox Code Playgroud)
为了简单性和准确性,我真的更喜欢使用 Moment.js。我在这里看到了一些纯 JS 答案,但没有一个是真正可靠的。
这是一个奇怪的问题。编辑的新解决方案:计算第一周的天数(第一行),然后计算接下来的几周(中间行),如果有待处理的天数,则添加另一行:
考虑到该周从星期一以“isoWeekDay()”开始。
截至 2019 年 10 月 9 日:
let now = moment('9/oct/2019');
// First row
let firstWeekDays = 7 - now.startOf('month').isoWeekday() + 1;
let rows = 1
rest = now.daysInMonth() - firstWeekDays;
// Middle rows
let middleRows = Math.floor(rest/7);
rows = rows + middleRows;
rest = rest - (middleRows * 7);
// Last row?
if (rest > 0) {
rows = rows + 1;
}
console.log(rows); // 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |