MomentJS获取相对于今天的以前的日期

时间:2018-12-05 16:11:59

标签: javascript date momentjs

是否有使用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]);
}

1 个答案:

答案 0 :(得分:0)

OP中的代码效率极低,而且比所需的复杂得多。

要为从今天到月初的日期生成一系列格式化的字符串,只需一个日期以及一些非常简单的算术和格式化即可。它实际上不需要库,也不需要任何日期运算,例如

// 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)

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