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 }
2:在wxml文件里引入 (相對路徑)
<wxs src="../../../filter/dateFir.wxs" module="dateFir"></wxs>
3:在對應的位置使用過濾器
{{dateFir.getDates(item.createdAt,':')}}
4:效果如下
