欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > json时间格式化处理,typeof cb == “function” cb(that.globalData.userInfo) ...

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

json时间格式化处理,typeof cb == “function” cb(that.globalData.userInfo) ...

发布时间:2020-12-06  
一:json时间格式化处理

分享者:大侠,原文地址 
//打开微信小程序后,部分模板绑定数据是通过接口调取的,当遇到数据的时间被json格式化后,需要正常的显示。可以通过扩展一个方法去处理时间。 
1.打开utils里的utils.js ,也可以按照自己的习惯添加我们需要扩展的函数renderTime,方法如下

 

function renderTime(date) {

var da = new Date(parseInt(date.replace("/Date(", "").replace(")/", "").split("+")[0]));

var Year = da.getFullYear(); //ie火狐下都可以

var Month = da.getMonth() + 1;

var Day = da.getDate();

var Hours=da.getHours();

var Minutes=da.getMinutes();

var Seconds=da.getSeconds();

var CurrentDate = "";

CurrentDate += Year + "-";

if (Month >= 10) {

CurrentDate += Month + "-";

}

else {

CurrentDate += "0" + Month + "-";

}

if (Day >= 10) {

CurrentDate += Day;

}

else {

CurrentDate += "0" + Day;

}

if (Hours <10) {

Hours = "0" + Hours;

}

if (Minutes < 10) {

Minutes ="0"+ Minutes;

}

if (Seconds < 10) {

Seconds ="0"+ Seconds;

}

return CurrentDate + " " + Hours + ":" + Minutes + ":" + Seconds;

}

 

//引用的话,只需要在你的页面下的js里

var util = require('../../utils/util.js'); 你放置这个函数。

当然,utils里的

//扩展的方法需要在Module里去声明

module.exports = {

renderTime:renderTime

}

调用方法。便是 util.renderTime(date);即可。

 

二:typeof cb == “function” && cb(that.globalData.userInfo)的理解

微信小程序官方demo以及很多代码中会在函数中经常出现typeof cb == “function” && cb(that.globalData.userInfo)一句。开始很不明白,网上的回答大多也是一知半解,查了官方的api配合demo的代码,终于搞清楚了。  代码本身的含义是,判断cb是不是函数类型同时将一个参数传入名为cb的函数下,这样看似乎还是不明白,那就加上源码来看。  1.以下是官方demo中获取用户信息的函数定义

 

getUserInfo:function(cb){

console.log(‘getUserInfo 函数开始执行’);

var that = this

if(this.globalData.userInfo){

typeof cb == “function” && cb(this.globalData.userInfo)

}else{

//调用登录接口

wx.login({

success: function () {

wx.getUserInfo({

success: function (res) {

console.log(‘用户数据获取成功’);

that.globalData.userInfo = res.userInfo

typeof cb == “function” && cb(that.globalData.userInfo)

}

})

}

})

}

}

2.以下是在index.js中的onLoad函数的代码

 

onLoad: function () {

console.log(‘onLoad函数开始执行’)

var that = this

//调用应用实例的方法获取全局数据

app.getUserInfo(function(userInfo){

//更新数据

that.setData({

userInfo:userInfo

})

console.log(‘用户数据存入当前页面’);

})

}

解释:在getUserInfo的方法定义中,接收了名为cb的参数,使用时机就是在拿到用户信息的时候,如果这个cb类型为函数就执行名为cb这个函数。再看函数调用,在index.js的onLoad方法中调用了这个函数并定义了一函数作为参数,函数的内容就是将传入的userInfo设置在当前页面的数据中。

执行步骤:当进入到index页面时首先会调用onLoad函数,然后会执行app.getUserInfo()函数(输出可以先乎略),在getUserInfo()函数中会先判断是本地是否保存有用户信息,第一次执行的时候肯定没有走else,执行登录方法,拿到用户信息然后执行typeof cb == “function” && cb(that.globalData.userInfo) 执行作为参数的函数的方法,按输出信息走就是这样一个过程,先输出’onLoad方法开始执行’,然后是’getUserInfo 函数开始执行’,再然后是’用户数据获取成功’最后会输出’用户数据存入当前页面’。