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

时间:2016-03-04 05:33:51

标签: 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);

致电endOfWeek时,我获得了预期的价值。 但是,我的问题是startOfWeekendOfWeek值覆盖。

我想获得startOfWeekendOfWeek

的价值

3 个答案:

答案 0 :(得分:30)

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

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

答案 1 :(得分:4)

您需要克隆当前值,然后执行操作:

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);

答案 2 :(得分:-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);

我现在能够同时获得本周的开始和结束日期。