【问题标题】:create calendar array by moment.js通过 moment.js 创建日历数组
【发布时间】:2017-06-06 12:43:33
【问题描述】:

我想创建这样的数组。

var date_ = [
{ "DateText": "Mon - 2nd April", "Date": "2/4/2017", "WeekNumber" : 13 },
{ "DateText": "Tue - 3rd April", "Date": "3/4/2017", "WeekNumber": 14 },
{ "DateText": "Wed - 4th April", "Date": "4/4/2017", "WeekNumber": 14 }
];

我得到了所有内容,只剩下第 2、3 和 4 个数字约定,你能检查我的代码吗?

var date_ = []; 

var prevDate = moment().subtract(15, 'days');
var nextDate = moment().add(15, 'days');

var start = new Date(prevDate);
var end = new Date(nextDate);

while(start < end){
   date_.push(
      {
        "DateText" : moment(start).format('ddd - DD MMM'),
        "Date" : moment(start).format('DD/MM/YYYY'),
        "WeekNumber" : moment(start).week()
      }
    );
   var newDate = start.setDate(start.getDate() + 1);
   start = new Date(newDate);  
}

console.log(date_);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>

谢谢

【问题讨论】:

    标签: javascript jquery arrays json momentjs


    【解决方案1】:

    你需要Do令牌见Display Format

    moment(start).format('ddd - Do MMM')
    

    var date_ = [];
    
    var prevDate = moment().subtract(15, 'days');
    var nextDate = moment().add(15, 'days');
    
    while (prevDate.isBefore(nextDate)) {
      date_.push({
        "DateText": prevDate.format('ddd - Do MMM'),
        "Date": prevDate.format('DD/MM/YYYY'),
        "WeekNumber": prevDate.week()
      });
      prevDate.add(1, 'days');
    }
    
    console.log(date_);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>

    【讨论】:

    • +1 是个好答案,但我建议使用 isBefore 而不是使用 &lt; 比较矩对象
    • @VincenzoC,我只关注 OP 问题领域我得到了一切,只剩下这个第 2、第 3 和第 4 个数字约定您可以修改答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2019-12-18
    • 2014-09-12
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多