【问题标题】:How to format date within array [duplicate]如何在数组中格式化日期[重复]
【发布时间】:2020-07-21 15:29:22
【问题描述】:

我正在使用.map构造一个数组,输出如下:

renderDataLabels = (labelArray) => {
  const res = Object.values(this.state.totalCalls);
  labelArray = res.map(label => {
    return label.date
  })
  console.log(labelArray);
  return labelArray
}

/// 输出:///

0: "2020-07-11"
1: "2020-07-12"
2: "2020-07-13"
3: "2020-07-14"
4: "2020-07-15"
5: "2020-07-16"
6: "2020-07-17"
7: "2020-07-18"
8: "2020-07-19"
9: "2020-07-20"
10: "2020-07-21"

如何在返回数组之前格式化日期,以便将它们格式化为 Jul, XX 2020?

【问题讨论】:

标签: javascript


【解决方案1】:

您可以使用moment.js。使用此库,您可以将日期格式化为所需的任何格式。

labelArray = res.map(label => {
    return moment(label.date).format('MMM, DD YYYY')
  })

【讨论】:

    【解决方案2】:
    renderDataLabels = (labelArray) => {
      const res = Object.values(this.state.totalCalls);
      labelArray = res.map(label => {
        const dateArray = label.date.split("-");
        const newDate = `${dateArray[1]}-${dateArray[2]}-${dateArray[0]}`;
        return newDate;
      })
      console.log(labelArray);
      return labelArray
    }
    

    不用运行来安装momentjs,你可以简单地使用它。

    【讨论】:

    • 这不符合他的要求。这将返回 07 这个月而不是 Jul
    • 是的,你说得对,我没注意 7 月份。
    【解决方案3】:

    希望对你有帮助。

    const myDate = new Date('2020-04-18')
    
    const dateFormated = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit' }) 
    const [{ value: month },,{ value: day },,{ value: year }] = dateFormated .formatToParts( myDate ) 
    
    console.log(`${month}, ${day} ${year}`)

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2013-01-19
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多