前段时间个人撸出来的H5商城终于上线了,经过一番线上“测试”,bug还不算多,陆陆续续地修复升级了。
由于公司主打跨境电商,那必然会考虑时区问题,秒杀、限时优惠等模块需要将时间卡死了,统一以服务器返回时间为准(开始、结束)。
需求很简单嘛,不就是计算时间查吗?好嘞,赶紧撸起来,几分钟的事儿。。。
然而整个过程耗了我半小时,草!!!!
问题如下:
接口返回时间格式:“2020-04-15 12:30:59”
使用 new Date(‘2020-04-15 12:30:59’).getTime() 得到时间戳,然后将开始和结束进行差值计算,所得差作为倒计时就ok了
在Android上没任何问题,可在IOS出现了bug,总是获取不到转换的Date类型时间,以致getTime()没有值!!!
最后发现原来是IOS不支持直接将 “2020-04-15 12:30:59” 格式的字符串转Date类型,不能出现\”-\”,只支持“/”
那就好办了,直接将字符串中的“-”替换成“/”即可,再new Date(‘2020/04/15 12:30:59’)就没啥问题了,nice搞定!
参考代码:
\”2020-04-15 12:30:59\”.replace(/-/g, “/”);
或先使用第三方依赖 dayjs(需要引入)
dayjs(“2020-04-15 12:30:59”).format(‘YYYY/MM/DD HH:mm:ss’);