- 这两天搞手机页面中,发现一个坑,分享出来让大家看看吧。
- 开发的时候,全是在Google浏览器上查看的,后来用自己的手机看下手机上的效果的时候,发现了一个很神奇的问题,出现NAN。
- 如图:
- 借助那位大哥的博客,帮我解决了这个问题,原来是因为new Date(‘2019-01-01’);中的字符串中的"-“的原因,在ios上面导致的不兼容,要使用”/“替换”-"便可解决。
- 开始上菜:
//时间格式化
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
这里使用的vue的拦截器进行调用时间格式化的方法,因为有涉及到公司代码,所以打上一些马赛克
解决代码:
formatDate: function (time) {
time = time.replace(/\-/g, "/");
return new Date(time).Format('yyyy-MM');
}