当前位置:
首页 > MUI踩坑之路 > [MUI踩坑之路001]手机ios端utc时间问题

[MUI踩坑之路001]手机ios端utc时间问题

[MUI踩坑之路001]手机ios端utc时间问题

JS新手一枚,MUI摸着石头过河,肯定会掉坑里无数次,特此开贴记录,以防以后自己或其他新手朋友再掉进同一个坑。

app是用mui的模板改写而来,断断续续摸索了几天,昨晚终于成功让它与自己的php网站服务端通讯兵获取数据成功。

结果高兴尽头未落今天就掉坑里了。

首先是Hbuilder的编辑器实在用不惯,git插件做的繁杂混乱把自己的git仓库弄乱好几次,迫不得已换回熟悉的VScode,大不了在VScode里写好代码再去Hbuilder里往手机端同步app调试。

然后今天Hhbuilder又开始出幺蛾子,死活连不上我的魅族pro5手机,怎么搞都不行,快疯了。

还好手头有多余的iphone6,换用iphone6调试,连接成功丝般润滑...

以下是今天碰到的坑,大多数应该是因为我个人经验和基础不足的原因,但是再浅的坑都可能有人掉进去

 

【坑1】 iOS端Date()函数与安卓、桌面chrome的不同

login登录的时候app会从服务端获取token和token失效时间,app收到后保存在state里方便随时调用或者判断,结果发现用的时候怎么都读不出来state里保存的token失效时间,看看代码怎么都看不出来问题,代码拿出来在浏览器里怎么测试都正常,只好回头一行一行的试(不是不想编写的时候调试,实在调试太麻烦,而且之前的安卓手机连接调试总是时通时断,所以干脆就写一大段再调试)

最后试出来了,首先是换用了iphone6之后由于ios平台上Date()函数并不是和chrome或者安卓上一样可以直接 new Date("2018-03-03 15:12:34")这样,IOS上竟然只支持"2018/03/03"这样的格式,我去,太***了

解决办法:替换“-”为“/”

if($.os.ios || $.os.iphone || $.os.ipad){

tokenTime = tokenTime.replace(new RegExp("-","gm"),"/");

}

【坑2】 UTC时间

因为要判断失效时间,所以读取出来的失效时间总是这样:2018-03-03T09:34:15.000Z,明明不是下午吗,怎么显示是9点....

搜索了半天才明白这是UTC时间,懒得管,我要北京时间啊

但是各种调试发现new Date()的时候时间是正常的GMT时间:Sat Mar 03 2018 17:34:15 GMT+0800 (CST),但是等到从保存的变量里再次读取出来的时候就变成UTC时间了

烦。。。。吐。。。。。

试了半天,总算试出来一个简单有效的方法,管你怎么转换,我只需要我用的时候都是统一的GMT时间就行

解决方法:读取出来的变量再套new Date()让它解析一次变成GMT时间

console.log(new Date(state.tokenTime));

console.log(new Date());

 

【记】

预感坑会越来越多,没办法,硬着头皮上了

承接航母大修、空间站维护、航天飞机打蜡,专业翻新核弹头,潜艇抛光,回收二手航母,大修核反应堆,航天飞机保养换三滤,高空作业擦洗卫星除尘;长期代写小学生寒暑假作业,替小学生打架,欺负同学,打老师(体育老师除外)

[MUI踩坑之路001]手机ios端utc时间问题:等您坐沙发呢!

发表评论

表情
还能输入210个字