题解 | #时间格式化输出#

https://www.nowcoder.com/practice/a789783e7c984f10a0bf649f6d4e2d59

function add(str,data){
    if(str.length == 2 && data<10){
        return "0"+data;
    }
    return data;
}
function formatDate(date,str){

    // 深复制,存储匹配到的需要替换的字符串
    let newArr = str.match(/\w+/g);
    let arr = [];
    for(let k in newArr){
        arr[k] = newArr[k];
    }

    // 星期数
    let day=["日","一","二","三","四","五","六"]
    // 按照题目要求得到对应时间数据
    for(let i in newArr){
        switch(newArr[i][0]){
            case "y":
                if(newArr[i].length == 4){
                    newArr[i] = date.getFullYear();
                }else{
                    newArr[i] = date.getYear()-100;
                }
                break;
            case "M":
                newArr[i] = add(newArr[i],date.getMonth()+1);
                break;
            case "d":
                newArr[i] = add(newArr[i],date.getDate());
                break;
            case "H":
                newArr[i] = add(newArr[i],date.getHours());
                break;
            case "h":
                newArr[i] = add(newArr[i],date.getHours()%12);
                break;
            case "m":
                newArr[i] = add(newArr[i],date.getMinutes());
                break;
            case "s":
                newArr[i] = add(newArr[i],date.getSeconds());
                break;
            case "w":
                newArr[i] = day[date.getDay()];
                break;
        }
    }
    // 字符串匹配和替换
    for(let k in arr){
        str = str.replace(arr[k],newArr[k]);
    }
    // 返回替换后的字符
    return str
}
全部评论

相关推荐

现在进来个骚扰电话,我都会激动的以为是hr电话
阿杰阿杰:是这样的 有的时候还担心HR电话被标记为诈骗电话 还不放心 得接一下
点赞 评论 收藏
分享
八极星:我看成了化身一团黑子哈哈哈😂
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务