微信小程序的特殊处理
最近在开发一个微信小程序的应用,发现一个很神奇的情况从后端传来的时间格式:2020-07-29T11:21:04.254,在wxs中通过getDate 在安卓Android中能很准确地将每个时间点分离出来,而在模拟器上苹果IOS也能顺利分离,问题就是在苹果IOS的真实设备上则出现分离的时间竟然多了8个小时,在网上一堆理论,解决的方法也五花八门;最后根据网上的解决方案没有很好的解决。那只能自己出手吧,其实出手也很简单,既然你分离出来的小时多了8小时,我直接把传过的格式的小时挑出来就是了。好吧上代码。
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分钟来提交,方法是可行的。
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毫秒怎么办,如果用当前的时间来区别又担心安卓和苹果的时间格式。。后来终于想到用时间戳来处理,怎么处理,看代码吧。
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秒后的时间搓,如果正数的就代码已经过了,不过就没到。虽然这个不知道是否最好的,但解决了我的问题了。
再分享一个小技巧,由于小程序对图片使用了缓存,所以在调用需要更新的图片后面最好加参数,可以参数看你服务器的配置,可以是随机数也可以固定值,但固定值估计也会变缓存的;当然如果经常变的就随机值;暂时就分享到这里吧。
-完-
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法