微信小程序filter使用


WXS(WeiXin Script)是小程序的一套腳本語言,wxs 與 javascript 是不同的語言,有自己的語法,並不和 javascript 一致。其中包括了很多日常使用的javascript函數,在wxs中都是不能同樣使用的。最近在做一個列表的時候,涉及到時間格式化操作。就遇到了這個問題,以前寫好了的格式化工具函數直接拷貝到小程序項目的wxs文件中,函數不能正常執行。其中包括了下面的幾個錯誤

正則表達式在字符串的replace函數中的使用方法不一樣,不能直接使用var a = /[0-9]/這種方式聲明使用。正確的方式為var reg = getRegExp("-", “g”);
獲取當前時間不能通過new Date()獲取,而是通過getDate方法獲取。
getDate(‘2018/12/12’)可以獲取對應日期的date類型的時間。
按照上面的異同,修改過后的時間格式化函數代碼為

1:先創建一個wxs文件

    var getDates =  function (time, splitStr) {
        console.log(1111111111111)
        console.log(time)
        if (!time) return '';
        var times = parseInt(time.replace("/Date(", "").replace(")/", ""));
        var date = getDate(times);
        var M = date.getMonth() + 1;
        var y = date.getFullYear();
        var d = date.getDate();
        if (M < 10) M = "0" + M;
        if (d < 10) d = "0" + d;
        
        if (splitStr)
            return y +splitStr + M +splitStr+d;
        else
            return {
            y: y,
            M: M,
            d: d
            };
    }
    var replaceStar = function (index) {
        console.log('index')
        console.log(index)
        var a
        switch (index) {
            case '1':
                a = '出生時'
                break;
            case '2':
                a = '1月齡'
                break;
            case '3':
                a = '2月齡'
                break;
            case '4':
                a = '3月齡'
                break;
            case '5':
                a = '4月齡'
                break;
            case '6':
                a = '5月齡'
                break;
            case '7':
                a = '6月齡'
                break;
            case '8':
                a = '8月齡'
                break;
            case '9':
                a = '9月齡'
                break;
            case '10':
                a = '1歲6月齡'
                break;
            case '11':
                a = '2歲'
               break;
            case '12':
                a = '3歲'
                break;
             case '13':
                 a = '4歲'
                break;
            case '14':
                a = '6歲'
               break;
        }
        return a;
    }
module.exports = {
    getDates: getDates,
    replaceStar:replaceStar
}
View Code

2:在wxml文件里引入 (相對路徑)

<wxs src="../../../filter/dateFir.wxs"  module="dateFir"></wxs>
3:在對應的位置使用過濾器
{{dateFir.getDates(item.createdAt,':')}}
 4:效果如下

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM