前端开发中遇到的ios兼容性问题及解决
日期的兼容性事件兼容性日期的兼容性
iOS下new Date('-03-11 00:00:00')
不生效,可以使用new Date(,03,11,0,0,0')
替代,也可以对日期进行date.replace(/-/g, '/')
处理。/*** 在保险期为1年的规则下,获取终保日期的值* @param {起保日期} start_date */const getEndDate = (start_date) => {if (!start_date) {return '';}//eg:start_date='-03-11 00:00:00' =>'-03-11 00:00:00'let tempDate = start_date.replace(/^[1-9][0-9]{3}-/g, `${Number(start_date.substring(0, 4)) + 1}-`);//iOS不兼容new Date('-03-11 00:00:00'),可以使用new Date(,03,11,0,0,0')//也可以使用 replace(/-/g, '/')tempDate = tempDate.replace(/-/g, '/');//eg:=>'-03-10 23:59:59'tempDate = new Date(new Date(tempDate).getTime() - 1);return dateFormat(tempDate);}/*** 对日期进行格式化:yyy-mm-dd hh:mm:ss* @param {日期类型的日期} date */const dateFormat = (date) => {if (!date) {return '';}if (!(date instanceof Date)) {return date;}var y = date.getFullYear();var mon = date.getMonth() + 1;var d = date.getDate();var h = date.getHours();var m = date.getMinutes();var s = date.getSeconds();h = (h < 10) ? ('0' + h) : h;m = (m < 10) ? ('0' + m) : m;s = (s < 10) ? ('0' + s) : s;return `${y}-${mon}-${d} ${h}:${m}:${s}`;}
事件兼容性
ios下beforeunload
事件废弃了,需要使用pagehide
事件替代。
window.addEventListener("beforeunload",()=>{setRootSessionItem(this.$store.state);});//IOS废弃了beforeunload事件,故用下面的代替window.addEventListener("pagehide",()=>{setRootSessionItem(this.$store.state);})
目前遇到的就这几个,持续更新~~~