gpt4 book ai didi

javascript - 从 moment.js 获取一个月中的周数(行数)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:52:45 28 4
gpt4 key购买 nike

我想使用 momentjs 获取任何一个月的日历行数(周数)

例如:

这将是 5

enter image description here

这将是 6

enter image description here

这是我必须处理的内容:

我有月份、月初和月底作为时刻项目

const month; // (month moment obj)
const start = moment(month).startOf('month');
const end = moment(month).endOf('month');

这是我到目前为止尝试过的方法(没有运气)

const weeks = end.diff(start, 'week'); // always gives 4
const weeks = moment.duration(end - start).weeks() + 1; // always gives 5

为了简单和准确,我真的更愿意使用 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

关于javascript - 从 moment.js 获取一个月中的周数(行数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com