MomentJS相对于今天的日期

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (932)

无论如何使用MomentJS获得当天的日前?

例如,假设这是2018年1月5日,我怎么会得到从以前的日期2018年1月1日一直到2018年1月5日

我当前的代码如下所示:

const monthArr = [];
const dayArr= [];
const currentDate = moment(new Date()).format("DD");

for (let i = 0; i < +currentDate; i++) {
  const month = moment(new Date())
    .subtract(i, "day")
    .format("MMYYYY");

  const day = moment(new Date())
    .subtract(i, "day")
    .format("MMDDYYYY");

  console.log("month" + month);
  console.log("day" + day);

  let monthObj = {};
  let dailyObj = {};

  monthArr.push(
    (monthObj = {
      data: {
        [month]: Object.assign({}, document)
      }
    })
  );
  day.push(
    (dailyObj = {
      data: {
        [day]: Object.assign({}, document)
      }
    })
  );

  monthly(user_id, monthArr[i]) &&
  daily(user_id, dayArr[i]);
}
提问于
用户回答回答于

OP中的代码似乎非常低效,并且比所需要的复杂得多。

要为从今天到月初的日期生成一系列格式化字符串,只需要一个Date和一些非常简单的算术和格式。它确实不需要库或任何日期算术,例如

// Pad single digit number with leading zero
function pad(n){
  return (n < 10? '0' : '') + n;
}

var today = new Date(),
    year = today.getFullYear(),
    month = pad(today.getMonth() + 1),
    day,
    i = today.getDate();

do {
  day = pad(i);
  console.log(`Month: ${month + year}`);
  console.log(`Day: ${month + day + year}`);
} while (--i)

您的代码还存在许多其他问题,但它们与问题没有直接关系。

所属标签

可能回答问题的人

  • Hanzo

    6 粉丝0 提问7 回答
  • Richel

    9 粉丝0 提问3 回答
  • mariolu

    31 粉丝0 提问2 回答
  • 上云小秘书

    15 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券