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

一:json时间格式化处理

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

 


  1. function renderTime(date) {
  2. var da = new Date(parseInt(date.replace(“/Date(“, “”).replace(“)/”, “”).split(“+”)[0]));
  3. var Year = da.getFullYear(); //ie火狐下都可以
  4. var Month = da.getMonth() + 1;
  5. var Day = da.getDate();
  6. var Hours=da.getHours();
  7. var Minutes=da.getMinutes();
  8. var Seconds=da.getSeconds();
  9. var CurrentDate = “”;
  10. CurrentDate += Year + “-“;
  11. if (Month >= 10) {
  12. CurrentDate += Month + “-“;
  13. }
  14. else {
  15. CurrentDate += “0” + Month + “-“;
  16. }
  17. if (Day >= 10) {
  18. CurrentDate += Day;
  19. }
  20. else {
  21. CurrentDate += “0” + Day;
  22. }
  23. if (Hours <10) {
  24. Hours = “0” + Hours;
  25. }
  26. if (Minutes < 10) {
  27. Minutes =”0″+ Minutes;
  28. }
  29. if (Seconds < 10) {
  30. Seconds =”0″+ Seconds;
  31. }
  32. return CurrentDate + ” ” + Hours + “:” + Minutes + “:” + Seconds;
  33. }

 


  1. //引用的话,只需要在你的页面下的js里
  2. var util = require(‘../../utils/util.js’); 你放置这个函数。
  3. 当然,utils里的
  4. //扩展的方法需要在Module里去声明
  5. module.exports = {
  6. renderTime:renderTime
  7. }
  8. 调用方法。便是 util.renderTime(date);即可。

 

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

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

 


  1. getUserInfo:function(cb){
  2. console.log(‘getUserInfo 函数开始执行’);
  3. var that = this
  4. if(this.globalData.userInfo){
  5. typeof cb == “function” && cb(this.globalData.userInfo)
  6. }else{
  7. //调用登录接口
  8. wx.login({
  9. success: function () {
  10. wx.getUserInfo({
  11. success: function (res) {
  12. console.log(‘用户数据获取成功’);
  13. that.globalData.userInfo = res.userInfo
  14. typeof cb == “function” && cb(that.globalData.userInfo)
  15. }
  16. })
  17. }
  18. })
  19. }
  20. }

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

 


  1. onLoad: function () {
  2. console.log(‘onLoad函数开始执行’)
  3. var that = this
  4. //调用应用实例的方法获取全局数据
  5. app.getUserInfo(function(userInfo){
  6. //更新数据
  7. that.setData({
  8. userInfo:userInfo
  9. })
  10. console.log(‘用户数据存入当前页面’);
  11. })
  12. }

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

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

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

【小程序源码网资源版权风险说明】:
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » json时间格式化处理,typeof cb == “function” && cb(that.globalData.userInfo) …
嘿,投喂下嘛!