前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序的特殊处理

微信小程序的特殊处理

原创
作者头像
谭广健
修改2020-07-30 17:53:59
6130
修改2020-07-30 17:53:59
举报
文章被收录于专栏:谭广健的专栏

最近在开发一个微信小程序的应用,发现一个很神奇的情况从后端传来的时间格式:2020-07-29T11:21:04.254,在wxs中通过getDate 在安卓Android中能很准确地将每个时间点分离出来,而在模拟器上苹果IOS也能顺利分离,问题就是在苹果IOS的真实设备上则出现分离的时间竟然多了8个小时,在网上一堆理论,解决的方法也五花八门;最后根据网上的解决方案没有很好的解决。那只能自己出手吧,其实出手也很简单,既然你分离出来的小时多了8小时,我直接把传过的格式的小时挑出来就是了。好吧上代码。

代码语言:javascript
复制
var formatNumber = function(val1) {    
    var realDate = getDate(val1);   
    var year = realDate.getFullYear();
    var month = realDate.getMonth() + 1 < 10 ? "0" + (realDate.getMonth() + 1) : realDate.getMonth() + 1;
    var day = realDate.getDate() < 10 ? "0" + realDate.getDate() : realDate.getDate();
    var hour = realDate.getHours() < 10 ? "0" + realDate.getHours() : realDate.getHours();
    var minute = realDate.getMinutes() < 10 ? "0" + realDate.getMinutes() : realDate.getMinutes();
    var second = realDate.getSeconds() < 10 ? "0" + realDate.getSeconds() : realDate.getSeconds();
    var Ihour=val1.split('T')[1].split(':')[0];   
    return year + "年" + month + "月" + day + "日" + Ihour + "时" + minute + "分";
  }

崇上简单直接的解决方法,这个方法在在安卓和苹果都能通用,不用像网上的教程那样搞一堆的判断。。当然这个原创的,希望你能记得我的付出吧。

接下来又遇到一个问题就,因为我这个小程序是通过云转发提交;不知道什么原因(有可能是用户点击多次的缘故),一条数据偶尔会出现重复,那怎么解决呢。就不用用户提交的次数太频繁。借用网上的间隔1分钟来提交,方法是可行的。

代码语言:javascript
复制
 var m = new Date().getMinutes().toString();
 if (m == wx.getStorageSync('m')) { 
 wx.showToast({
        icon: 'none',
        title: '请稍等1分钟后再提交!',
 });
 return false;
 }
 wx.setStorageSync('m', m)

这样就完美解决1分钟内不能提交的问题;但这时候又有个提议就是将间隔等待的时间改为15秒的,这个就麻烦点;思前想后,本来是以为用毫秒来计算,但又担心刚好60毫秒怎么办,如果用当前的时间来区别又担心安卓和苹果的时间格式。。后来终于想到用时间戳来处理,怎么处理,看代码吧。

代码语言:javascript
复制
 var timestamp = Date.parse(new Date());
 timestamp = timestamp / 1000;
 var z = timestamp; 
 if (z - wx.getStorageSync('z') < 0) {
 wx.showToast({
        icon: 'none',
        title: '请稍等15秒后再提交!',
 });
 return false;
 }
 wx.setStorageSync('z', z+15)

整个思路就是用时间搓来进行对比,当前的时间搓对比+15秒后的时间搓,如果正数的就代码已经过了,不过就没到。虽然这个不知道是否最好的,但解决了我的问题了。

再分享一个小技巧,由于小程序对图片使用了缓存,所以在调用需要更新的图片后面最好加参数,可以参数看你服务器的配置,可以是随机数也可以固定值,但固定值估计也会变缓存的;当然如果经常变的就随机值;暂时就分享到这里吧。

-完-

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档