es6

[es6]getDateStrByFormat

getDateStrByFormat(format,d,defaultValue){
    if(typeof d == 'string'){
        d = this.getDateByYYYYMMDD(d);
    }
    if(!d){
        if(defaultValue != undefined && defaultValue != null){
            return defaultValue;
        }else{
            d = new Date();
        }
    }
    if(!format){
        format = 'Y-m-d';
    }
    const _pz = function(v,digits){
        var vs = v.toString();
        while(vs.length < digits){
            vs = '0' + vs;
        }
        return vs;
    };
    return format
        .replace(/Y/g,d.getFullYear())
        .replace(/y/g,d.getFullYear().toString().substr(2,2))
        .replace(/n/g,d.getMonth()+1)
        .replace(/m/g,_pz(d.getMonth()+1,2))
        .replace(/j/g,d.getDate())
        .replace(/d/g,_pz(d.getDate(),2))
        .replace(/G/g,d.getHours())
        .replace(/H/g,_pz(d.getHours(),2))
        .replace(/i/g,_pz(d.getMinutes(),2))
        .replace(/s/g,_pz(d.getSeconds(),2))
        .replace(/J/g,['日','月','火','水','木','金','土'][d.getDay()])
        .replace(/D/g,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][d.getDay()]);
}

[JavaScript]文字列yyyy-mm-ddからDateを得る

js

function getDateByYYYYMMDD(yyyymmdd) {
    var tmp = void 0,
        match = void 0;
    if (match = yyyymmdd.match(/[\d]{4}\-[\d]{2}\-[\d]{2}/)) {
        if (match.length) {
            tmp = match[0].split('-');
        }
    } else if (match = yyyymmdd.match(/[\d]{4}[\d]{2}[\d]{2}/)) {
        if (match.length) {
            tmp = [match[0].substr(0, 4), match[0].substr(4, 2), match[0].substr(6, 2)];
        }
    }
    if (!tmp || tmp.length < 3) {
        return null;
    }
    return new Date(Number(tmp[0]), Number(tmp[1]) - 1, Number(tmp[2]), 0, 0, 0, 0);
}

es6

getDateByYYYYMMDD(yyyymmdd){
    let tmp,match;
    if(match = yyyymmdd.match(/[\d]{4}\-[\d]{2}\-[\d]{2}/)){
        if(match.length){
            tmp = match[0].split('-');
        }
    }else if(match = yyyymmdd.match(/[\d]{4}[\d]{2}[\d]{2}/)){
        if(match.length){
            tmp = [match[0].substr(0,4),match[0].substr(4,2),match[0].substr(6,2)];
        }
    }
    if(!tmp || tmp.length < 3){
        return null;
    }
    return new Date(Number(tmp[0]),Number(tmp[1])-1,Number(tmp[2]),0,0,0,0);
}