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

Get 4 week startdate and enddate

本文关键字:日期 结束 开始 4周 获取      更新时间:2023-09-26

我想获得未来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

在这里,Week0的日期应该从当前日期开始计算。

试试moment库它很容易使用,所以你应该能够很快弄清楚如何做到这一点

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

以下是如何使用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'));
}
<script src="http://momentjs.com/downloads/moment.min.js"></script>

两个简单的内置功能在这里工作,即:

  • moment,它是moment类的一个实例,本质上是一个日期时间字符串
  • startOf,非常不言自明,找到了本周开始的确切日期时间
  • add,它将一定量的x,即天、周、月等添加到当前实例中
  • clone,这是克隆原始时刻以防止其被end变量修改的必要步骤
  • 很明显,format基于作为其参数的字符串来格式化矩

看看Moment.js文档,对代码进行一点解读;它将帮助您更好地理解Moment.js作为一个库。希望这能有所帮助。