moment.js在不影响原始日期的情况下添加/减去天数

rni*_*ena 26 momentjs

如何使用moment.js将天数加到或减去默认日期?

我想获得本周的开始和结束日期,如下所示:

const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.startOf('isoWeek').weekday(0);
const endOfWeek = current.endOf('isoWeek').weekday(6);
Run Code Online (Sandbox Code Playgroud)

打电话时endOfWeek,我得到了预期的价值.但是,我的问题是startOfWeekendOfWeek值覆盖了.

我想利用这两者的价值startOfWeekendOfWeek

Mat*_*int 37

您只需要在修改之前先克隆时刻.使用current.clone().whatever...moment(current).whatever....他们都做同样的事情.

这是必要的,因为时刻是可变的.


小智 6

您需要克隆current的值,然后执行以下操作:

const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.clone().startOf('isoWeek').weekday(0);
const endOfWeek = current.endOf('isoWeek').weekday(6);
Run Code Online (Sandbox Code Playgroud)


rni*_*ena -1

通过获取 的格式startOfWeek并将其保存在变量中解决了该问题。然后,我从新变量将其转换为矩实例,并从这里获取值endOfWeek

const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.startOf('isoWeek').weekday(0);

const startOfWeekConvert = startOfWeek.format('YYYY-MM-DD');

const endOfWeek = startOfWeekConvert.endOf('isoWeek').weekday(6);
Run Code Online (Sandbox Code Playgroud)

我现在可以同时获取一周的开始日期和结束日期。