代码之家  ›  专栏  ›  技术社区  ›  user500665

将日期字符串从YYMMDD转换为DD MON YYYY

  •  0
  • user500665  · 技术社区  · 7 年前

    我有个约会对象 "20180619"

    我怎么能把这个换成 19 Jun 2018

    我开始尝试

    var date = new Date(parseInt("20180619"));
    var d = date.getDate();
    var m =  date.getMonth();
    var y = date.getFullYear();
    console.log(d + ' ' + m + ' ' + y)
    

    但是得到10 1970

    编辑:所以这里实际上有两个问题,第一个是日期格式错误,第二个是月份名称。第二部分是由另一个关联问题来回答。所以,归根结底,就是使用这里答案中的两种不同方法之一,将日期分解为它的组件。

    5 回复  |  直到 7 年前
        1
  •  1
  •   nephiw    7 年前

    您需要将字符串解析成日期可以理解的内容。怎么样:

    var dateString = "20180619";
    var parsedDate = dateString.replace(/(\d{4})(\d{2})(\d{2})/, '$1/$2/$3');
    var date = new Date(parsedDate);
    var d = date.getDate();
    var months = ['Jan', 'Feb', 'Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    var m =  months[date.getMonth()];
    var y = date.getFullYear();
    console.log(d + ' ' + m + ' ' + y)
    

    19 Jun 2018

        2
  •  2
  •   Terry Wei    7 年前

    我有一个新的简单解决方案 toLocaleString

    var str = '20180619';
    
    var date = new Date([str.slice(0, 4), str.slice(4, 6), str.slice(6, 8)].join('/'));
    
    var result = date.toLocaleString('en-GB', { month: 'short', year: "numeric", day: "2-digit"})
    
    console.log(result);
        3
  •  1
  •   user2575725    7 年前

    yyyy-mm-dd dd-mm-yyyy - /

    var date = new Date("20180619".replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3'));
    var str = [date.getDate(), (['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getMonth()]), date.getFullYear()].join(' ');
    console.log(str);

    var str = "20180619".replace(/(\d{4})(\d{2})(\d{2})/, function(o, y, m, d) {
      return [d, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][parseInt(m, 10) - 1], y].join(' ');
    });
    console.log(str);
        4
  •  0
  •   Zeeshan Elahi    7 年前

    将日期字符串转换/拆分为数组,然后使用数组索引获取值并创建日期对象。

    var dateString = "20180619";
    var dateArray = dateString.split("");
    
    console.log(dateArray);
    
    var myDate = new Date();
    console.log(myDate.toString());
    
    myDate.setFullYear(dateArray[0] + dateArray[1] + dateArray[2] + dateArray[3]);
    
    myDate.setMonth(dateArray[4] + dateArray[5]);
    
    myDate.setDate(dateArray[6] + dateArray[7]);
    
    console.log(myDate.toString());

    日期部分的格式仍然丢失。我希望你能自己动手。

        5
  •  -1
  •   Mohammad Ajmal Amirzad    7 年前
    var date = new Date("06/19/2018"); //You were providing the date in a wrong format.
    
    const monthNames = ["January", "February", "March","April","May","June","July","August","September","October","November","December"];
    
    var newDate = date.getDate() + ' ' + monthNames[date.getMonth()] + ' ' + date.getFullYear();