【问题标题】:JavaScript: Array of numbers to date-time string formatJavaScript:日期时间字符串格式的数字数组
【发布时间】:2019-02-06 04:41:54
【问题描述】:
我有一个数字数组
var year = [1999,2000,2001,2002,2003];
我需要转换为日期时间格式
var yearConvert =["1999-00-00","2000-00-00","2001-00-00","20002-00-00","2003-00-00"];
我只有一年是整数
【问题讨论】:
标签:
javascript
arrays
date
datetime
【解决方案1】:
您可以在每个元素上使用map 和 concat -00-00
var year = [1999,2000,2001,2002,2003];
let op = year.map(e => e+'-00-00')
console.log(op)
【解决方案2】:
您可以使用 IIFE generator function 和 spread syntax 和 yield 每个值到一个数组中,如下所示:
const year = [1999,2000,2001,2002,2003],
yearConvert = [...(function*(a){
for(y of a) yield `${y}-00-00`;
})(year)];
console.log(yearConvert);
【解决方案3】:
您可以使用Array#map 来执行此操作。但是返回的数组的值是字符串而不是 Date 对象。
const year = [1999,2000,2001,2002,2003];
const dateString = year.map((ele) => `${ele}-00-00`);
console.log(dateString);
//Convert this array to Date Objects using Date constructor Date(year, monthIndex, day) month starts from '0'
const date = dateString.map((str) => {
const data = str.split('-');
return new Date(data[0], data[1], data[2]+1);
});
console.log(date)
//To verify parse to date strings
const dateParsed = date.map((date) => date.toDateString());
console.log(dateParsed);