评论

wxs下的时间格式化

使用wxs实现date对象的格式化

1、首先,创建一个wxs的文件,内容如下

var formatTime = function(date) {
var date = getDate(date); //返回当前时间对象
var year = date.getFullYear()
var month = fixz(date.getMonth() + 1)
var day = fixz(date.getDate())

var hour = fixz(date.getHours())
var minute = fixz(date.getMinutes())
var second = fixz(date.getSeconds())

return [year, month, day].join(’-’) + ’ ’ + [hour, minute, second].join(’:’)
}

var fixz = function(num) {
if (num < 10) {
return ‘0’ + num
}
return num
}

module.exports = {
formatTime: formatTime
}

2、在wxml中引用文件
<wxs module=‘tools’ src=‘tools.wxs’></wxs>

3、在wxml中转格式
{{tools.formatTime(item.createTime)}}

写在最后,为什么不直接用外部的js?因为所有的所有的数据需要提前在page下的js中处理好才能输出到wxml中,比较麻烦。用wxs可以直接在页面中转化,而且可以直接复用。

点赞 1
收藏
评论

7 个评论

  • 不知道
    不知道
    2019-05-13
      /**
     * 将日期格式化成指定格式的字符串
     * @param date 要格式化的日期,不传时默认当前时间,也可以是一个时间戳
     * @param fmt 目标字符串格式,支持的字符有:y,M,d,q,w,H,h,m,S,默认:yyyy-MM-dd HH:mm:ss
     * @returns 返回格式化后的日期字符串
     */
    formatDate: function (date, fmt) {
      date = date || "";
      date = getDate(date.toString().replace(getRegExp("-", "g"), "/"));
      date = date === undefined ? getDate() : date;
      date = typeof date == "number" ? getDate(date) : date;
      fmt = fmt || "yyyy-MM-dd HH:mm:ss";
      var obj = {
        y: date.getFullYear(), // 年份,注意必须用getFullYear
        M: date.getMonth() + 1, // 月份,注意是从0-11
        d: date.getDate(), // 日期
        q: Math.floor((date.getMonth() + 3) / 3), // 季度
        w: date.getDay(), // 星期,注意是0-6
        H: date.getHours(), // 24小时制
        h: date.getHours() % 12 == 0 ? 12 : date.getHours() % 12, // 12小时制
        m: date.getMinutes(), // 分钟
        s: date.getSeconds(), // 秒
        S: date.getMilliseconds() // 毫秒
      };
      var week = ["天", "一", "二", "三", "四", "五", "六"];
      var objKeys = ['y', "M", "d", "q", "w", "H", "h", "m", "s", "S"];
      for (var i = 0; i < objKeys.length; i++) {
        var key = objKeys[i];
        fmt = fmt.replace(getRegExp(key + "+", "g"), function(m) {
          var val = obj[key] + "";
          if (key == "w") return (m.length > 2 ? "星期" : "周") + week[val];
          var len = val.length;
          for (var j = 0; j < m.length - len; j++)
            val = "0" + val;
          return m.length == 1 ? val : val.substring(val.length - m.length);
        });
      }
      return fmt;
    },

    给你个我写的

    2019-05-13
    赞同 3
    回复
  • 韦不吕🙈🙉🙊
    韦不吕🙈🙉🙊
    2019-07-14

    你这item.createTime是什么格式?

    db.serverDate()创建出来的时间,用这个方法无法直接在WXML解析。


    2019-07-14
    赞同 2
    回复
  • 冰凌
    冰凌
    03-19

    你好问下item.createTime这个值是什么形式的呢 我传入时间戳时间不对呢

    03-19
    赞同
    回复
  • 宁嘉
    宁嘉
    2019-09-02

    如何生成时间格式,设置生成打印时间有,再wxml中调用显示为object,谢谢。

    2019-09-02
    赞同
    回复 1
    • 王政娇
      王政娇
      03-17
      time.toString()
      03-17
      回复
  • Echokh
    Echokh
    2019-08-29

    这个方法无法在wxml中解析?

    2019-08-29
    赞同
    回复
  • Alice
    Alice
    2019-08-19

    请问你这个方法如何让当前时间减去8个小时呢?

    2019-08-19
    赞同
    回复
  • Administrator
    Administrator
    2019-05-13

    var date=function(n,t){var r,e,u=["Sun","Mon","Tues","Wednes","Thurs","Fri","Satur","January","February","March","April","May","June","July","August","September","October","November","December"],o=/\\?(.?)/gi,i=function(n,t){return e[n]?e[n]():t},c=function(n,t){for(n=String(n);n.length<t;)n="0"+n;return n};e={d:function(){return c(e.j(),2)},D:function(){return e.l().slice(0,3)},j:function(){return r.getDate()},l:function(){return u[e.w()]+"day"},N:function(){return e.w()||7},S:function(){var n=e.j(),t=n%10;return t<=3&&1===parseInt(n%100/10,10)&&(t=0),["st","nd","rd"][t-1]||"th"},w:function(){return r.getDay()},z:function(){var n=new Date(e.Y(),e.n()-1,e.j()),t=new Date(e.Y(),0,1);return Math.round((n-t)/864e5)},W:function(){var n=new Date(e.Y(),e.n()-1,e.j()-e.N()+3),t=new Date(n.getFullYear(),0,4);return c(1+Math.round((n-t)/864e5/7),2)},F:function(){return u[6+e.n()]},m:function(){return c(e.n(),2)},M:function(){return e.F().slice(0,3)},n:function(){return r.getMonth()+1},t:function(){return new Date(e.Y(),e.n(),0).getDate()},L:function(){var n=e.Y();return n%4==0&n%100!=0|n%400==0},o:function(){var n=e.n(),t=e.W();return e.Y()+(12===n&&t<9?1:1===n&&9<t?-1:0)},Y:function(){return r.getFullYear()},y:function(){return e.Y().toString().slice(-2)},a:function(){return 11<r.getHours()?"pm":"am"},A:function(){return e.a().toUpperCase()},B:function(){var n=3600*r.getUTCHours(),t=60*r.getUTCMinutes(),e=r.getUTCSeconds();return c(Math.floor((n+t+e+3600)/86.4)%1e3,3)},g:function(){return e.G()%12||12},G:function(){return r.getHours()},h:function(){return c(e.g(),2)},H:function(){return c(e.G(),2)},i:function(){return c(r.getMinutes(),2)},s:function(){return c(r.getSeconds(),2)},u:function(){return c(1e3*r.getMilliseconds(),6)},e:function(){throw new Error("Not supported (see source code of date() for timezone on how to add support)")},I:function(){return new Date(e.Y(),0)-Date.UTC(e.Y(),0)!=new Date(e.Y(),6)-Date.UTC(e.Y(),6)?1:0},O:function(){var n=r.getTimezoneOffset(),t=Math.abs(n);return(0<n?"-":"+")+c(100*Math.floor(t/60)+t%60,4)},P:function(){var n=e.O();return n.substr(0,3)+":"+n.substr(3,2)},T:function(){return"UTC"},Z:function(){return 60*-r.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(o,i)},r:function(){return"D, d M Y H:i:s O".replace(o,i)},U:function(){return r/1e3|0}};var a,f;return a=n,r=void 0===(f=t)?new Date:f instanceof Date?new Date(f):new Date(1e3*f),a.replace(o,i)};


    console.log(date("Y-m-d H:i:s u"));

    2019-05-13
    赞同
    回复
登录 后发表内容