首页 > 解决方案 > 过滤和格式化日期数组

问题描述

我有一个从 1950 年到 2019 年的日期数组。任务是过滤日期,以便日期数组包含 1970 年之后的日期,我们需要将日期映射到给定的格式,比如更改格式。

let dateformat="April 2015"
var endDate =  ["1950-09-02T23:00:00.000Z",
             "1951-06-02T23:00:00.000Z"
             ..........
            "2016-09-02T23:00:00.000Z",
            .........
            "2019-09-02T23:00:00.000Z"]



  my solution:
   endDate.filter(item => item > 1970).map(item => item = new Date(dateFormat))

预期结果是日期数组将日期从给定格式更改为 2015 年 4 月 - 仅月 - 年。我能够过滤日期以使日期大于 1970 年,但无法映射到给定的格式。我也在尝试使用 ES6 语法来做到这一点。该数组是通过将日期推入数组来动态生成的。

标签: javascript

解决方案


将字符串映射到Date对象,按年份过滤,然后使用以下命令将日期映射到请求的格式Date.toLocaleString()

const dateformat = "April 2015"
const endDate = ["1950-09-02T23:00:00.000Z", "1951-06-02T23:00:00.000Z",  "2016-09-02T23:00:00.000Z", "2019-09-02T23:00:00.000Z"]

const result = endDate
  .map(item => new Date(item))
  .filter(item => item.getFullYear() > 1970)
  .map(item => item.toLocaleString('en-US', {
    month: 'long',
    year: 'numeric'
  }))

console.log(result)


推荐阅读