Javascript Datejs计算一周中的下一天和上一天

Javascript Datejs计算一周中的下一天和上一天,javascript,datejs,Javascript,Datejs,我使用datejs,我想得到三个按钮, 今天:生成本周的两个日期限制,即本周的周一和周日 下一步:生成下周的两个日期限制 上一周:生成上一周的两个日期限制 这里是我的代码 var currentDay = 0; (currentDay).days().fromNow().next().saturday().toString("yyyy-M-d"); (currentDay).days().fromNow().prev().monday().toString("yyyy-M-d"); 这三个

我使用datejs,我想得到三个按钮,
今天:生成本周的两个日期限制,即本周的周一和周日
下一步:生成下周的两个日期限制
上一周:生成上一周的两个日期限制

这里是我的代码

var currentDay = 0;
(currentDay).days().fromNow().next().saturday().toString("yyyy-M-d");

(currentDay).days().fromNow().prev().monday().toString("yyyy-M-d");
这三个按钮可以 当天+7;第7天;currentDay=0

问题是

我们是星期一22,这个函数返回我星期一15

前一段时间我已经为此编写了一些代码:

Date.prototype.getMonday=function(){return this.getDay()==1 ? this.clone().clearTime() : this.clone().prev().monday().clearTime();};
// This function returns the Monday of current week
var today=new Date();
today.getMonday().toString();
today.getMonday().next().sunday().toString();
// start and end of this week
today.getMonday().prev().monday().toString();
today.getMonday().prev().day().toString();
// previous week
today.getMonday().next().monday().toString();
today().getMonday().next().sunday().sunday().toString();
// next week

这些可能会有所帮助。

下面的示例
.getWeekRange()
函数接受一个日期对象(或默认为“今天”),将计算出该周的星期一,然后返回一个带有该周的
开始
结束
属性的对象

示例

var getWeekRange = function (date) {
    var date = date || Date.today(),
        start = date.is().monday() ? date : date.last().monday(),
        end = start.clone().next().sunday();

    return {
        start  : start,
        end : end
    };
};
var range = getWeekRange();

console.log("Start", range.start);
console.log("End", range.end);
var prev = getWeekRange(Date.today().last().week());
var next = getWeekRange(Date.today().next().week());
然后,您可以使用该函数获取任意给定日期的周范围:

示例

var getWeekRange = function (date) {
    var date = date || Date.today(),
        start = date.is().monday() ? date : date.last().monday(),
        end = start.clone().next().sunday();

    return {
        start  : start,
        end : end
    };
};
var range = getWeekRange();

console.log("Start", range.start);
console.log("End", range.end);
var prev = getWeekRange(Date.today().last().week());
var next = getWeekRange(Date.today().next().week());
要获取前一周,只需传入前一周的日期对象:

示例

var getWeekRange = function (date) {
    var date = date || Date.today(),
        start = date.is().monday() ? date : date.last().monday(),
        end = start.clone().next().sunday();

    return {
        start  : start,
        end : end
    };
};
var range = getWeekRange();

console.log("Start", range.start);
console.log("End", range.end);
var prev = getWeekRange(Date.today().last().week());
var next = getWeekRange(Date.today().next().week());
要获取下周,只需传入下周的日期对象:

示例

var getWeekRange = function (date) {
    var date = date || Date.today(),
        start = date.is().monday() ? date : date.last().monday(),
        end = start.clone().next().sunday();

    return {
        start  : start,
        end : end
    };
};
var range = getWeekRange();

console.log("Start", range.start);
console.log("End", range.end);
var prev = getWeekRange(Date.today().last().week());
var next = getWeekRange(Date.today().next().week());
希望这有帮助。

周一的
.prev().monday()
是7天前的事了,这可能会导致您的问题。