根据特定日期获取星期一至星期日

时间:2017-08-27 23:48:29

标签: javascript jquery momentjs

所以我有一个函数,它接收一个日期,并从该日期的星期一到星期日每天返回。

例如:

const auto&

会返回一个数组:

input into function: 2017-08-24T19:37:09-04:00

这是我到目前为止的代码(我使用[ "2017-08-21T19:37:09-04:00", "2017-08-22T19:37:09-04:00", "2017-08-23T19:37:09-04:00", "2017-08-24T19:37:09-04:00", "2017-08-25T19:37:09-04:00", "2017-08-26T19:37:09-04:00", "2017-08-27T19:37:09-04:00" ] ):

momentjs

所以这样可以正常工作,但输入为function getMonday(d) { d = new Date(d); var day = d.getDay() || 7; var diff = d.getDate() - day + (day == 0 ? -6:1); for (var i = 0; i <= 6; i++) { var date = new Date(d.setDate(diff+i)); dateRange.push(moment(date).format()); console.log(dateRange); } } ...

时失败

在这个例子中它返回:

getMonday(new Date('2017-07-31T19:44:06-04:00'))

这显然是错误的,因为它增加了几个月......

发生了什么?有没有办法轻松解决这个我错过的问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

问题似乎是你在每个循环中通过d变异diff + i,假设原始日期为31,最终导致{{1}每次大约一个月。

这样的事情应该更简单

d