1. 后台传过来的日期处理
最近做了个综合查询平台,把以前系统做一个综合查询,有个个人的基本信息页面,里面的个人简历信息不同系统拼凑而成,例如:
张三(A系统获得)1999年3月3日(B系统获得)生人,2014年4月4日(C系统获得)毕业,2015年5月5日(D系统获得)参加工作
以上日期都是从不同的系统获取来的,但是以前做系统的时候,后端还没有把日期统一标准化-_-(问:有个标准化是多么重要),传过来的数据有可能这样
- 2019
- 2019.3
- 2019.3.5
- 2019-3
- 2019-3-5
我还需要把他们格式化为
****年或******月或****年**月**日
所以我采取了一下方法(肯定有更好的方法,目前我是没想到)
getDateStr (value) {
var reg2 = /^\d{4}.(0\d{1}|1[0-2]).(0\d{1}|[12]\d{1}|3[01])$/ // 验证YYYY.MM.DD格式
var reg4 = /^\d{4}.(0\d{1}|1[0-2])$/ // 验证YYYY.MM格式
//replace(/\b(0+)/gi, '')是去掉0
if(value.length === 4) { // ----------------yyyy
return value + '年'
} (value.length === 7) { // -----------------------yyyy.mm或者yyyy-mm
if (reg4.test(value)) { // -----------------------yyyy.mm
return value.replace(/(\d{4}).(\d{2})/, '$1年$2月').replace(/\b(0+)/gi, '')
} else { // --------------------------------------yyyy-mm
return value.replace(/(\d{4})-(\d{2})/, '$1年$2月').replace(/\b(0+)/gi, '')
}
} else if else if (value.length === 10) { // ---------------yyyy.mm.dd或者yyyy-mm-dd
if (reg2.test(value)) { // -----------------------yyyy.mm
return value.replace(/(\d{4}).(\d{2}).(\d{2})/, '$1年$2月$3日').replace(/\b(0+)/gi, '')
} else { // --------------------------------------yyyy-mm
return value.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1年$2月$3日').replace(/\b(0+)/gi, '')
}
} else {
return value
}
}
未完待续~~~