javascript - 在 moment js 中按给定日期确定一周的第一天

标签 javascript momentjs

我想在 Moment.js 中根据给定日期确定一周的第一天。这是我的代码:

var begin = moment("2015-08-15").startOf('week').isoWeekday(0);
console.log(begin);
var end = moment("2015-08-15").endOf('week').isoWeekday(0);
console.log(end);

我得到以下输出:

Object { _isAMomentObject: true, _i: "2015-08-15", _f: "YYYY-MM-DD", _isUTC: false, _pf: Object, _locale: Object, _d: Date 2015-08-01T22:00:00.000Z }
Object { _isAMomentObject: true, _i: "2015-08-15", _f: "YYYY-MM-DD", _isUTC: false, _pf: Object, _locale: Object, _d: Date 2015-08-09T21:59:59.999Z }

根据文档,本地默认为“en”,这意味着一周的第一天是星期日。在我看来正确的结果应该是:

begin = 2015-08-09
end = 2015-08-15

当我将 isoWeekday 从“0”更改为“1”时,结果如下所示:

Object { _isAMomentObject: true, _i: "2015-08-15", _f: "YYYY-MM-DD", _isUTC: false, _pf: Object, _locale: Object, _d: Date 2015-08-02T22:00:00.000Z }
Object { _isAMomentObject: true, _i: "2015-08-15", _f: "YYYY-MM-DD", _isUTC: false, _pf: Object, _locale: Object, _d: Date 2015-08-10T21:59:59.999Z }

这也是错误的。正确答案是:

begin = 2015-08-10
end = 2015-08-16

最佳答案

正确答案是:

var begin = moment().subtract(1, 'week').startOf('week').format("YYYY MM DD");
var end = moment().subtract(1, 'week').endOf('week').format("YYYY MM DD");

感谢@MattJohnson 的帮助

关于javascript - 在 moment js 中按给定日期确定一周的第一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609079/

相关文章:

javascript - 如何修复以下代码,该代码旨在向时间戳添加分钟,并且最终值也应该在时间戳中,因为我将进行一些数据库查询?

javascript - 检查momentjs中日期文本是否有毫秒和秒

javascript - momentjs 减去返回相同的值

javascript - 如何在 Redux 中管理(异步)级联数据?

javascript - 如何将日期转换为给定格式?

javascript - 在 React 中保护路由的最佳选择是什么?

javascript - 自引用 Parse.com 类

javascript - 使用时刻的小时数之间的差异

javascript - 如何屏蔽表单提交按钮

javascript - Meteor 选择器无法处理意外的字符串错误