【问题标题】:moment.js how to print this week in a specific formatmoment.js 如何以特定格式打印本周
【发布时间】:2018-06-10 06:45:00
【问题描述】:

我正在尝试使用 moment.js 打印从周一到周日的当前一周

  • 6 月 4 日星期一
  • 6 月 5 日星期二
  • 等等

我看到moment().format('ddd, MMM Do') 可以打印所需的格式。 moment().startOf('week').toString() 给出了正确的一周的第一天,但​​格式不同。

moment.adḍ̣(1, 'day')可以给第二天等等。

我的麻烦是如何将它结合起来打印从第一天开始的一周中的所有天。

【问题讨论】:

  • 你能把你试过的代码贴出来吗?

标签: javascript datetime momentjs


【解决方案1】:

这里weekDateStr 将包含当前一周的格式化字符串

var weekDateStr = [];
var date = moment().startOf('week');
for(var i = 0; i < 7; i++) {
    console.log(date.format('ddd, MMM Do'));
    weekDateStr.push(date.format('ddd, MMM Do'));
    date = date.adḍ̣(1, 'day')
}
console.log(weekDateStr);

【讨论】:

    【解决方案2】:

    你不需要像那样打电话给moment().startOf('week').toString()toString() 只是将对象转换为它的字符串表示,但是您需要的信息包含在通过调用moment().startOf('week') 获得的对象中。

    如果您想要上述格式,则可以轻松将其更改为moment().startOf('week').format('ddd, MMM Do')。然后继续循环添加天数(使用add(i, 'days'))到一周的开始,直到获得7天,每次在给定日期调用.format('ddd, MMM Do')

    const dateStr = '';
    
    for (let i = 0; i < 7; i++) {
      console.log(moment().startOf('week').add(i, 'days').format('ddd, MMM Do'));
    }
     &lt;script src="https://rawgit.com/moment/moment/2.2.1/min/moment.min.js"&gt;&lt;/script&gt;

    如果你需要它作为一个字符串。

    const date = Array.from({length: 7}, () => 0)
      .map((v, i) => moment().startOf('week').add(i, 'day').format('ddd, MMM Do'))
      .join('; ');
    
    console.log(date);
    &lt;script src="https://rawgit.com/moment/moment/2.2.1/min/moment.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多