首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MomentJS获取相对于今天的以前日期

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

Stack Overflow用户
提问于 2018-12-06 00:11:59
回答 1查看 41关注 0票数 0

有没有办法使用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]);
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-06 08:39:01

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)

您的代码中还有许多其他问题,但这些问题与问题没有直接关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53636387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档