【问题标题】:moment.js being added to arraymoment.js 被添加到数组
【发布时间】:2020-01-28 21:40:14
【问题描述】:

我试图弄清楚为什么我的变量的对象内容被添加到我的数组而不是实际的 Date 对象

async function timeShift(dayWeek = 'weeks', num = 4) {
    console.log('Timeshift Start');
    formattedDate = moment(Date.parse(start_date))
    let apptStartArr = [formattedDate]
    let lastApptonArr = apptStartArr[apptStartArr.length - 1]
    i = 1
    while (lastApptonArr.isBefore(Date.now())) {
        newStart = lastApptonArr.add(num, `${dayWeek}`).toDate().getTime()
        apptStartArr.push(newStart)
        console.log(`${i}, ${newStart}`);
        i += 1
    }
    //Must pop the last array off and return
    console.log(apptStartArr);
    console.log(lastApptonArr);

    return lastApptonArr
}

它产生以下

[ moment("2020-01-30T13:00:00.000"),
  1568318400000,
  1570737600000,
  1573160400000,
  1575579600000,
  1577998800000,
  1580418000000 ]

对不起,草率的代码!

【问题讨论】:

    标签: javascript node.js date momentjs


    【解决方案1】:

    这是因为您的第一个值是矩对象。您需要将其转换为时间戳

    let apptStartArr = [formattedDate]
    

    应该是

    let apptStartArr = [formattedDate.toDate().getTime()]
    

    如果您想要 Date 对象而不是时间戳号,请不要调用 getTime()

    let apptStartArr = [formattedDate.toDate()];
    

    newStart = lastApptonArr.add(num, `${dayWeek}`).toDate();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-16
      • 2016-10-02
      • 1970-01-01
      • 2015-03-13
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      相关资源
      最近更新 更多