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

时间:2012-10-22 08:34:42

标签: javascript datejs

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

这里是我的代码

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

(currentDay).days().fromNow().prev().monday().toString("yyyy-M-d");

三个按钮 currentDay + 7; currentDay - 7; currentDay = 0;

问题是 我们是星期一22,这个功能让我回到星期一15;

2 个答案:

答案 0 :(得分:1)

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

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

愿这些帮助。

答案 1 :(得分:1)

以下示例.getWeekRange()函数接受Date对象(或默认为'today'),将计算该周的星期一,然后返回一个start和{{1}的对象本周的财产。

示例

end

然后,您可以使用该函数获取任何给定日期的周范围:

示例

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
    };
};

要获取前一周,只需传入上周的Date对象:

示例

var range = getWeekRange();

console.log("Start", range.start);
console.log("End", range.end);

要获得下周,只需从下周传入Date对象:

示例

var prev = getWeekRange(Date.today().last().week());

希望这有帮助。