格式化日期数组

时间:2019-11-25 09:21:09

标签: javascript

我有这个数组:

["2019-01-01", "2019-01-02", "2019-01-03"]

但是我需要这样的日期:

["01-01-2019", "02-01-2019", "03-01-2019"]

这是我走了多远:

var newdate= Date.parse(olddate);
console.log(newdate.toString('dd-MMM-yyyy'));

我收到此错误:

Uncaught RangeError: toString() radix argument must be between 2 and 36

谢谢

2 个答案:

答案 0 :(得分:4)

一种选择是将输入数组映射到具有所需格式的日期字符串的新数组,如下所示:

const input = ["2019-01-01", "2019-01-02", "2019-01-03"];

const output = input.map((str) => {
  
  /* Split date string into sub string parts */
  const [year, month, date] = str.split("-");
  
  /* Compose a new date from sub string parts of desired format */
  return `${date}-${month}-${year}`;      
});

console.log(output);

此处,input中的每个日期字符串都被"-"分为yearmonthdate子字符串。然后,由先前提取的子字符串组成具有所需格式的新日期字符串,并从地图回调中返回。

答案 1 :(得分:0)

您可以使用momentjs https://momentjs.com/guides/之类的库,并按以下方式进行操作。

var dates = ["2019-01-01", "2019-01-02", "2019-01-03"];
var formate = input.map((date) => {
  return moment(moment(date)).format('DD-MM-YYYY');      
});

console.log(formate);