How to create a new Date() in Javascript from a non-standard date format

前端 未结 6 2112
有刺的猬
有刺的猬 2020-12-24 13:47

I have a date in this format: dd.mm.yyyy

When I instantiate a JavaScript date with it, it gives me a NaN

In c# I can specify a date format, to s

6条回答
  •  余生分开走
    2020-12-24 14:19

    Modified version of the accepted answer which supports value and format without 'dd' and uppercase format

    function parseDate(input, format) {
        format = (format || 'yyyy-mm-dd').toLowerCase(); // default format
        var parts = input.match(/(\d+)/g), 
        i = 0, fmt = {};
        // extract date-part indexes from the format
        format.replace(/(yyyy|dd|mm)/g, function(part) { fmt[part] = i++; });
        return new Date([parts[fmt['yyyy']], parts[fmt['mm']], parts[fmt['dd']]].filter(x => x !== undefined).join('-'));
    }
    
    parseDate('10/2018', 'MM/YYYY')
    

提交回复
热议问题