我的开始日期为任何月份的星期一,结束日期为任何月份的星期日。我需要介于日期之间的周列表。例如,我选择开始日期为08/12/2019,结束日期为09/08/2019。作为输出,需要周列表。所以
{[08/12/2019,08/13/2019,08/14/2019,08/15/2019,08/16/2019,08/17/2019,08/18/2019],[08/19/2019,08/20/2019,08/21/2019,08/22/2019,08/23/2019,08/24/2019,08/25/2019],[08/26/2019,08/27/2019,08/28/2019,08/29/2019,08/30/2019,08/31/2019,09/01/2019],[09/02/2019,09/03/2019,09/04/2019,09/05/2019,09/06/2019,09/07/2019,09/08/2019]}
在react hook / js中需要。
var start = new Date("08/12/2019");
var end = new Date("09/08/2019");
var newStart = start.setDate(start.getDate()+7);
var days = [];
for (var d = begin; d <= newStart; d = d + 1) {
days.push(new Date(d));
}
这只能使用1周,没有太大帮助。
您可以使用嵌套循环扩展解决方案:
const start = new Date("2019-08-12");
const end = new Date("2019-09-08");
const DAY = 24 * 60 * 60 * 1000;
const weeks = [];
for (let newStart = start.valueOf(); newStart < end; newStart += DAY * 7) {
const days = [];
for (let d = newStart; d < newStart + 7 * DAY; d += DAY) {
days.push(new Date(d));
}
weeks.push(days);
}
console.log(weeks);
笔记:
YYYY-MM-DD
来设置UTC的零时间偏移量,以避免出现随机时间偏移量
new Date(d).toJSON().slice(0, 10)
会以这种格式将日期转换回字符串+
操作员的 正确行为
d + 1
使用Date对象会将其转换为字符串并将其与'1'连接,因此我将其d
用作Number来确保+
添加了数字d += DAY
是相同的 d = d + DAY
for
(var
将在函数范围内声明变量)本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句