gpt4 book ai didi

javascript - Moment - 获取一个月中的第一周和最后一周(整周)

转载 作者:行者123 更新时间:2023-11-30 08:23:47 27 4
gpt4 key购买 nike

我需要编写一个简单的代码,但我遇到了语法问题。

我需要用 moment.js 对象填充一个数组。该数组包含 2 个日期之间的所有日期。这是我实现这一目标的逻辑。

  • 获取一个月第一个星期的星期一(在本例中为 26/02)。
  • 获取一个月最后一周的星期日(在本例中为 (01/04)。
  • 将日期推送到我的数组中的 while 循环。

目前这是我想出的(但它不起作用)。

let start = this.currentDate.startOf("month").startOf("isoWeek");
let end = this.currentDate.endOf("month").endOf("isoWeek");
while (start.isSameOrBefore(end)) {
this.month.push(start);
start.add(1, "days");
}

这会导致我的应用程序崩溃。当我记录 startend 时,我发现这两天是一样的。

2018 年 3 月 4 日星期日 23:59:59 GMT+0100(浪漫标准时间)

我假设我的语法有误,但我想不出是什么。

最佳答案

两者都是startOf()endOf()改变原来的:

Mutates the original moment by setting it to the start of a unit of time.

你必须使用clone() :

All moments are mutable. If you want a clone of a moment, you can do so implicitly or explicitly.

Calling moment() on a moment will clone it.

您的代码可能如下所示:

let start = this.currentDate.clone().startOf("month").startOf("isoWeek");
let end = this.currentDate.clone().endOf("month").endOf("isoWeek");
while (start.isSameOrBefore(end)) {
this.month.push(start);
start.add(1, "days");
}

关于javascript - Moment - 获取一个月中的第一周和最后一周(整周),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49066224/

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