Just � Lionet 2022-12-19 17:32 采纳率: 0%
浏览 15

小程序wxs文件封装时间格式过滤器

    最近想要在微信小程序项目中封装一个全局使用的过滤器,将时间戳格式转化为年月日格式,根据官网提示,在utils文件夹中新建一个.wxs为后缀的文件,然后写入自己的代码,在想要试用时间格式过滤器的画面引用,看起来清晰明了有简单。

    但是,最终发现无效,真是不能理解,代码如下:

1.utils文件夹中创建的util.wxs文件:

  var formatDate = function (timestamp, option) {
    var date = getDate(timestamp);
    var year = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    
    var hour = function () {
      return date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
    }
   
    var minute = function () {
      return date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
    }
   
    var second = function () {
      return date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    }
   
    //获取 年月日
    if (option == 'YY-MM-DD') return " " + year + "-" + month + "-" + day;
   
    //获取年月
    if (option == 'YY-MM') return " " + year + "-" + month;
   
    //获取年
    if (option == 'YY') return " " + year;
   
    //获取月
    if (option == 'MM') return  " " + month;
   
    //获取日
    if (option == 'DD') return " " +  day;
   
    //获取昨天
    if (option == 'yesterday') return " " + day - 1;
   
    //获取时分秒
    if (option == 'hh-mm-ss') return " " + hour() + ":" + minute() + ":" + second();
   
    //获取时分
    if (option == 'hh-mm') return " " + hour() + ":" + minute();
   
    //获取分秒
    if (option == 'mm-ss') return minute() + ":" + second();
   
    //获取分
    if (option == 'mm')  return minute();
   
    //获取秒
    if (option == 'ss') return second();
   
    //默认时分秒年月日
    return year + '-' + month + '-' + day + ' ' + hour() + ':' + minute() + ":" + second();
  }
 module.exports = {formatDate:formatDate}

2.使用该过滤器的某个.wxml画面的引用代码:

<wxs src = "../../utils/util.wxs"  module = "filter" />

3.引用完在.wxml中正式使用该过滤器:

 <text bindtap="actionShow">{{filter.formatDate(month,'YY-MM')}}</text>

    一套流程下来我觉得是没有任何问题的,结果没有任何反应,连报错都没有,不知道是不是本人做了自定义tabbar的原因。

     后来,为了不再无谓的问题上浪费太多时间,我把wxs直接写在了.wxml文件内引用,就生效了。
 <text bindtap="actionShow">{{filter.formatDate(month,'YY-MM')}}</text>
<wxs module="filter">
  var toFixed = function (value) {
    return value.toFixed(2);
  }
  var formatDate = function (timestamp, option) {
    var date = getDate(timestamp);
    var year = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    
    var hour = function () {
      return date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
    }
   
    var minute = function () {
      return date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
    }
   
    var second = function () {
      return date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    }
   
    //获取 年月日
    if (option == 'YY-MM-DD') return " " + year + "-" + month + "-" + day;
   
    //获取年月
    if (option == 'YY-MM') return " " + year + "-" + month;
   
    //获取年
    if (option == 'YY') return " " + year;
   
    //获取月
    if (option == 'MM') return  " " + month;
   
    //获取日
    if (option == 'DD') return " " +  day;
   
    //获取昨天
    if (option == 'yesterday') return " " + day - 1;
   
    //获取时分秒
    if (option == 'hh-mm-ss') return " " + hour() + ":" + minute() + ":" + second();
   
    //获取时分
    if (option == 'hh-mm') return " " + hour() + ":" + minute();
   
    //获取分秒
    if (option == 'mm-ss') return minute() + ":" + second();
   
    //获取分
    if (option == 'mm')  return minute();
   
    //获取秒
    if (option == 'ss') return second();
   
    //默认时分秒年月日
    return year + '-' + month + '-' + day + ' ' + hour() + ':' + minute() + ":" + second();
  }
  module.exports = {
    formatDate:formatDate
  }
</wxs> 
    虽然也能用,但是这就表示我需要在每个想使用时间格式过滤器的画面都写一遍wxs代码,感觉失去了封装的意义,希望有大佬不能帮我解决这个困惑~
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-12-19 21:00
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件