获得4周的开始日期和结束日期

时间:2015-12-01 10:10:45

标签: javascript

我希望即将到来的4周(仅限工作日)开始和结束。

假设今天的日期为2015-12-01,则结果应如下所示

Week0 will have StartDate = 2015-11-30 and EndDate = 2015-12-04
Week1 will have StartDate = 2015-12-07 and EndDate = 2015-12-11
Week2 will have StartDate = 2015-12-14 and EndDate = 2015-12-18
Week3 will have StartDate = 2015-12-21 and EndDate = 2015-12-25

此处的第0周日期应从当前日期开始计算。

2 个答案:

答案 0 :(得分:0)

试试moment library这很容易使用,所以你应该能够快速找出,如何做到这一点。

var date = moment(yourdate);
// iterate by date.add(1, "week")
var start = date.clone().startOf('week');
var end = date.clone().endOf('week');
//use .format('YYYY-MM-DD'); to print out

答案 1 :(得分:0)

以下是如何使用Moment.js库(如注释中所述)来实现所需的输出。使用内置函数非常简单(查看结果,点击键盘上的 F12 或以其他方式打开控制台)



var weeks = 4;

for (var i = 0 ; i < weeks ; i++) {
    var start = moment().startOf('isoweek').add(i, 'weeks');
    var end = start.clone().add(4, 'days');
    console.log("Week%d will have StartDate = %s and EndDate = %s", i, start.format('YYYY-MM-DD'), end.format('YYYY-MM-DD'));
}
&#13;
<script src="http://momentjs.com/downloads/moment.min.js"></script>
&#13;
&#13;
&#13;

在这里结合简单的内置函数,即:

  • moment,它是时刻类的一个实例 - 实质上是一个日期时间字符串。
  • startOf,非常自我解释,找到了(在这种情况下)本周开始的确切日期时间
  • add,会在当前实例中添加一定数量的x,即天,周,月等
  • clone,这是克隆原始时刻以防止end变量修改它的必要步骤。
  • 很明显,
  • format根据给定的字符串格式化时刻。

查看Moment.js docs并稍微解释一下代码;它将帮助您更好地理解Moment.js作为库。希望这会有所帮助。