【问题标题】:Get current week获取当前周
【发布时间】:2017-11-10 01:46:19
【问题描述】:

所以我使用 momentjs 来处理我的日期格式并获取当前星期。

但我的问题是如何让它从 星期一 开始到 星期日

getweek.js

function getCurrentWeek() {
  var currentDate = moment();

  var weekStart = currentDate.clone().startOf('week');
  var weekEnd = currentDate.clone().endOf('week');

  var days = [];

  for (var i = 0; i <= 6; i++) {
    days.push(moment(weekStart).add(i, 'days').format("MMMM Do,dddd"));
  }
  console.log($scope.weekDays = days);
}

结果

{0:"November 5th,Sunday"
1:"November 6th,Monday"
2:"November 7th,Tuesday"
3:"November 8th,Wednesday"
4:"November 9th,Thursday"
5:"November 10th,Friday"
6:"November 11th,Saturday"}

预期结果

{0:"November 6th,Monday"
1:"November 7th,Tuesday"
2:"November 8th,Wednesday"
3:"November 9th,Thursday"
4:"November 10th,Friday"
5:"November 11th,Saturday"
6:"November 12th,Sunday"}

谢谢。

【问题讨论】:

  • this
  • @PaulT。谢谢老兄。

标签: javascript momentjs


【解决方案1】:

您可以使用startOf('isoWeek') 从星期一开始一周。

var weekStart = currentDate.clone().startOf('isoWeek');

function getCurrentWeek() {
  var currentDate = moment();

  var weekStart = currentDate.clone().startOf('isoWeek');
  var weekEnd = currentDate.clone().endOf('isoWeek');

  var days = [];

  for (var i = 0; i <= 6; i++) {
    days.push(moment(weekStart).add(i, 'days').format("MMMM Do,dddd"));
  }
  console.log(days);
}

getCurrentWeek();
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"&gt;&lt;/script&gt;

【讨论】:

    【解决方案2】:

    使用'isoweek' 而不是'week'

    var currentDate = moment();
    
    var weekStart = currentDate.clone().startOf('isoweek');
    
    var days = [];
    
    for (var i = 0; i <= 6; i++) {
        console.log(moment(weekStart).add(i, 'days').format("MMMM Do,dddd"));
    }
    

    【讨论】:

      【解决方案3】:
       getWeekDays (numberOfWeek:number,numberOfDays:number) {
          let weekStart = DateTime.now().startOf('week');
          for (let week=1 ; week <= numberOfWeek ; week++ ){
            const weekDays = [];
            for(let day=0 ; day < numberOfDays; day++ ){
              weekDays.push(weekStart.plus({ days: day }).toFormat('yyyy-MM-dd'))
            }
            this.weeks.push(weekDays);
            weekStart = weekStart.plus({ days: 7 });
          }
        }
      

      上述方法将允许您为给定的周数生成一组工作日。

      最终结果如下

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多