处理格式化时间后 时区误差8小时的问题
1 function formatTime(mdate, fmt) { 2 if (fmt == undefined) { 3 fmt = 'yyyy-MM-dd hh:mm:ss' 4 } 5 if (mdate == '') { 6 return '' 7 } 8 var date = new Date((mdate+"").replace("T", " ").replace(/-/g,'/')); //这里处理的时候需要注意 苹果IOS 不支持 2020-12-10 08:12:30 这种形式转换为Date类型 必须转换为 2020/12/10 08:12:30 的形式 9 if (/(y+)/.test(fmt)) { 10 fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); 11 } 12 let o = { 13 'M+': date.getMonth() + 1, 14 'd+': date.getDate(), 15 'h+': date.getHours(), 16 'm+': date.getMinutes(), 17 's+': date.getSeconds() 18 }; 19 for (let k in o) { 20 if (new RegExp(`(${k})`).test(fmt)) { 21 let str = o[k] + ''; 22 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length)); 23 } 24 } 25 return fmt; 26 }
1.如果时间中间带有T 符号,在转换为时间会多8小时 我们需要首先 将字符串中的T 替换掉
2.苹果IOS系统不支持 将 2020-12-12 00:00:00 格式的字符串直接转换为时间 必须使用 2020/12/12 00:00:00 形式的字符串转换为时间格式
所以使用 上面代码框中的方法是可以实现 兼容性的方法