gpt4 book ai didi

javascript - 从日期获取整周

转载 作者:行者123 更新时间:2023-11-30 10:37:58 25 4
gpt4 key购买 nike

我正在尝试根据单个日期查找构成整周的所有日期。

因此,如果日期位于一周的中间,例如星期三,它将返回星期日、星期一,直到星期六。

这是一个例子:

假设我有 2012 年 10 月 10 日星期三

我会将这个日期对象传递给函数,函数会返回 ['2012-10-07', '2012-10-08', '2012-10-09', '2012-10- 10', '2012-10-11', '2012-10-12', '2012-10-13'](我不想要字符串,但是 Date 对象,字符串只是为了示例^^

我自己已经试过了,但是我创建的方法又长又笨,不管怎样,这里是:https://gist.github.com/3889121

但我在这里主要寻找的是说明。用什么,有没有更简单的方法?

谢谢!

最佳答案

这是一个函数,它返回从给定日期之前的第一个星期日到下一个星期日的 Date 实例数组:

function getWeek(fromDate){
var sunday = new Date(fromDate.setDate(fromDate.getDate()-fromDate.getDay()))
,result = [new Date(sunday)];
while (sunday.setDate(sunday.getDate()+1) && sunday.getDay()!==0) {
result.push(new Date(sunday));
}
return result;
}
// usage
var week = getWeek(new Date('2012/10/10'));
console.log(week[0]); //=> Sun Oct 07 2012 00:00:00
console.log(week[6]); //=> Sat Oct 13 2012 00:00:00

只是为了好玩,使用 Array.map 作为 Date.prototype 的扩展的较短版本(一个单行代码)

Date.prototype.getWeek = function(){
return [new Date(this.setDate(this.getDate()-this.getDay()))]
.concat(
String(Array(6)).split(',')
.map ( function(){
return new Date(this.setDate(this.getDate()+1));
}, this )
);
}
// usage
new Date('2012/10/10').getWeek(); //=> [07/10/2012, ... ,13/10/2012]

关于javascript - 从日期获取整周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com