2016-03-04 38 views
11

如何使用moment.js添加或減去默認日期的天數?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值覆蓋。

我想通過獲取startOfWeek的格式並保存在一個變量獲得的兩個startOfWeekendOfWeek

+0

試試這個'時刻()加(7,「天」); '。也通過[this](http://momentjs.com/docs/#/manipulating/) – Raviteja

+0

這仍然覆蓋startOfWeek的價值 – rniocena

+0

您可以創建[fiddle](https://jsfiddle.net) ? – Raviteja

回答

-1

解決問題的價值。然後從新變量中,我將它轉換爲時刻實例,並從此處獲得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); 

我現在可以同時獲得一週的開始和結束日期。

+0

這不起作用。 'startOfWeekConvert'變量是一個*字符串*,因爲您使用'format'創建了它。因此,它沒有'endOf'功能。 –

21

你只需要先修改它,然後再修改它。使用current.clone().whatever...moment(current).whatever...。他們都做同樣的事情。

這是必要的,因爲時刻是可變

+0

這是正確的方法。 – okkko

2

您需要克隆的電流值,然後進行操作:

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); 
相關問題