问题
在对请求得到的日期字符串做处理时,发现在ios设备上时间显示出来是 NAN年NAN月NAN日
原因
ios设备不识别 年-月-日 这种日期格式,能够识别 年/月/日 因此将 - 替换成 / 即可
originVal.replace(/-/g, '/')
filters: {
dateFormat(originVal) {
const dt = new Date(originVal.replace(/-/g, '/'));
const y = dt.getFullYear();
const m = (dt.getMonth() + 1 + "").padStart(2, "0");
const d = (dt.getDate() + "").padStart(2, "0");
return `${y}年${m}月${d}日`;
},
},
顺便提一下padStart和padEnd
padStart
返回新的字符串,是用参数字符串从头部补全原字符串到指定最小长度
padEnd
返回新的字符串,是用参数字符串从尾部补全原字符串到指定最小长度
/*
接受两个参数,第一个参数是规定生成的字符串的最小长度,
第二个参数是用来补全的字符串,第二个参数不传,则默认用空格补全
*/
console.log("he".padStart(5,"llo")) // "llohe"
console.log("he".padEnd(5,"llo")) // "hello"
console.log("he".padStart(5)) // " he"
// 如果指定的长度小于或者等于原字符串的长度,则返回原字符串:
console.log("hello".padStart(4,"world")) // "hello"
console.log("hello".padStart(5,"world")) // "hello"
// 如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串:
console.log("hello".padEnd(10,",world!")); // "hello,worl"
// 常用于补全位数:
console.log("1".padStart(8,"0")); // "00000001"