【问题标题】:Using INTL to get the full week's days from today使用 INTL 从今天开始获取整周的天数
【发布时间】:2021-10-20 10:30:25
【问题描述】:

我正在尝试使用 INTL 从特定日期的日期(例如今天是星期三,所以我想获得今天加上今天之后的 7 天)获取一周中的几天。我已经设法得到今天的日期,但我不确定如何得到剩下的日子。

              function daysForLocale(localeName = 'en', weekday = 'long') {
                const format = new Intl.DateTimeFormat(localeName, { weekday }).format;
                return [...Array(1).keys()]
                  .map((day) => format(new Date()));
              }
              console.log(daysForLocale());

输出:

["Wednesday"]
["Wednesday"]
["Wednesday"]
["Wednesday"]
["Wednesday"]
["Wednesday"]
["Wednesday"]

期望的输出

["Thursday"]
["Friday"]
["Saturday"]
["Sunday"]
["Monday"]
["Tuesday"]
["Wednesday"]

【问题讨论】:

  • new Date() 今天总是返回。

标签: javascript intl


【解决方案1】:

请使用此代码。

    function daysForLocale(localeName = 'en', weekday = 'long') {
        const format = new Intl.DateTimeFormat(localeName, { weekday }).format;
        const today = new Date();
        return [...Array(7).keys()]
          .map((val, index) => [format(new Date(today.getTime() + 3600 * 24 * 1000 * (index + 1)))]);
    }
    console.log(daysForLocale());

【讨论】:

  • 感谢您的帮助,这让我整天都在一个数组中。我希望将每一天都放在一个数组中,即 ["Thursday"] ["Friday"]
  • 我已经更新了这段代码。请再次检查。
  • 非常感谢您,我会将您的答案标记为正确。为了我自己的学习,你能告诉我你做了什么吗?
  • 是的,您能告诉我您所做的更改为什么有效吗?
  • 通过索引(0~6)循环,我将今天的日期增加了(索引+ 1)天。因此,如果今天是星期一,则数组从星期二到星期一填充。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多