我正试图在上周获得同一天,所以我可以比较一些分析。
使用时刻我可以轻松地做到这一点
var today = new Date();
//Sunday 4 September 2016 - Week 36
var lastYear = new moment(today).subtract(12, 'months').toDate();
//Friday 4 September 2015 - Week 37
我想要做的是去年同样的'星期日',所以星期日在2015年第36周
知道怎么做吗?
答案 0 :(得分:9)
这是我想出的:
let today = moment();
let lastYear = moment().subtract(1, 'year')
.isoWeek(today.isoWeek())
.isoWeekday(today.isoWeekday());
以今天为起点,减去一年,并将周和工作日设置为今天的工作日。
所以今天(2016年9月13日星期二,又名2016-W37-2
)去年是2015年9月8日星期二(又名2015-W37-2
)。
答案 1 :(得分:0)
从版本2.0.0
开始,moment.js支持.endOf('week')
方法,请尝试
var lastYear = moment().subtract(1, 'years').endOf('week');
这将给你一个23:59:59的时间,所以你可能还想要.startOf('day')
致电当天00:00:00:
var lastYear = moment().subtract(1, 'years').endOf('week').startOf('day');
根据您所在的地区,您的周可能是周一至周日或周日至周六,所以我猜您也必须考虑到这一点。
我查了一下文档,看来你也可以用这种方式设置星期几:
moment().day(-7); // last Sunday (0 - 7)
moment().day(7); // next Sunday (0 + 7)
moment().day(10); // next Wednesday (3 + 7)
moment().day(24); // 3 Wednesdays from now (3 + 7 + 7 + 7)
所以在你的情况下它将是
var lastYear = moment().day(-52 * 7); // a Sunday 52 weeks ago
或两种方法相结合
var lastYear = moment().subtract(1, 'years').day(7); // a Sunday after the date that was 1 year ago
答案 2 :(得分:0)
// Typescript
var lastYear: moment.Moment = moment().subtract(1, "year");