求个日期格式化方法

var dates = changeDateFormat(["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]);
for (index = 0; index < dates.length; ++index) {
  console.log(dates[index]);
}

输出20100330,20161215,20121115,有啥简单的方法实现

阅读 1.9k
1 个回答
const changeDateFormat = (() => {
    const handlers = [
        [/\d{4}\/\d{2}\/\d{2}/, s => s.replace("/", "")],
        [/(\d{2})\/(\d{2})\/(\d{4})/, (s, r) => s.replace(r, "$3$2$1")],
        [/(\d{2})-(\d{2})-(\d{4})/, (s, r) => s.replace(r, "$3$1$2")],
        [/./, s => s]
    ];

    return function (arr) {
        return arr.map(s => {
            var [re, fn] = handlers.find(([re]) => re.test(s));
            return fn(s, re);
        });
    };
})();

console.log(changeDateFormat(["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]));
// [ '201003/30', '20161215', '20121115', '20130720' ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题