代码之家  ›  专栏  ›  技术社区  ›  Penny Pang

JavaScript:日期时间字符串格式的数字数组

  •  -2
  • Penny Pang  · 技术社区  · 6 年前

    我有一组号码

    var year = [1999,2000,2001,2002,2003];
    

    我需要转换成日期时间格式

    var yearConvert =["1999-00-00","2000-00-00","2001-00-00","20002-00-00","2003-00-00"];
    

    我只有整数年

    3 回复  |  直到 6 年前
        1
  •  0
  •   Code Maniac    6 年前

    你可以用 map 和concat -00-00 在每个元素上

    var year = [1999,2000,2001,2002,2003];
    
    let op = year.map(e => e+'-00-00')
    
    console.log(op)
        2
  •  0
  •   Nick Parsons Felix Kling    6 年前

    你可以好好生活 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
  •  0
  •   Fullstack Guy    6 年前

    你可以用 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);