您现在的位置是:首页 > UniApp中使用filters
UniApp中使用filters
简介自从DCloud重写了uniapp的核心,现在已经能支持Vue的filters特性了,这给时间格式化、订单状态格式化等典型的字符串处理提供了极大便利。
本文以时间格式化为例,后端API接口常常返回给前端的是一个int时间戳,前端需要在显示的时候转换成2019-06-28格式。
首先在/libs/目录下新建common.js,并写入如下内容:
let util = {};
util.formatDate = function (date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : util.padLeftZero(str));
}
}
return fmt;
};
util.padLeftZero = function (str) {
return ('00' + str).substr(str.length);
};
export default util;
然后在业务页面比如lists.vue里如下图所示调用:
<template>
<view>
<view class="kx-list">
<view
class="item"
:key="key"
v-for="(item, key) in kx_list">
<text class="title">
{{item.post_time| formatTime}}
</text>
</view>
</view>
</view>
</template>
<script>
import common from '@/libs/common.js'
export default {
data() {
return {
kx_list: {
}
}
},
filters: {
formatTime(time) {
var date = new Date(time);
return common.formatDate(date, 'yyyy-MM-dd hh:mm');
}
}
</script>
最终页面就会显示2019-06-28 12:00格式的时间,同理当我们需要给订单的状态1,2,3,4,5
等变量显示为待付款,待发货,待收货,待评价时也可以参考上面这样使用。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cn0udci9ym88