【数据处理】格式化数据

本文介绍了在前端开发中如何使用formatter属性批量格式化数据,例如将数字代码转换为对应含义,以及如何将时间戳转换为易读的日期时间格式。示例展示了对状态、锁定状态和时间戳的格式化方法,并提供了时间戳转日期的函数实现。
摘要由CSDN通过智能技术生成

一、前言

  在日常开发过程中,我们会遇到这样的需求:后端返回的某些数据,是使用数字代码来区别不同的含义(比如1代表是0代表否),但是前端将数据进行展示时,需要将这些数字代码转换成对应的含义。
  而当同类型数据有多个时,我们就可以运用formatter属性,编写对应的函数对数据进行批量格式化。

  • 在数据列表增加formatter属性
  • 给需要进行格式化的数据编写相应的函数

二、示例

<script>
export default {
    name: "QueryInterface", //DOM元素的id
    data() {
        return {
        	// 数据列表
            columns: [
                {
                    prop: "completeTime", 
                    label: "完成时间", 
                    width: "8%", 
                    align: "center", 
                    formatter: this.formatDate, 
                },
                {
                    prop: "status", //数据名称
                    label: "状态", //0:未处理,1:已处理
                    width: "8%", //数据所在列表宽度
                    align: "center", //数据对齐方式
                    formatter: this.formatStatus, //对该数据进行格式化——formatDate(名字自己取)
                },
                {
                    prop: "ifLock",
                    label: "是否锁定", //1:锁定;0:正常
                    width: "8%",
                    align: "center",
                    formatter: this.formatLock,
                },
            ],
            // 数据
            data: [
                {
                    status: "1",
                    ifLock: "0",
                    completeTime: 1611471459893,
                },
            ],
        };
    },
    methods: {
        // 状态;0:未处理,1:已处理
        formatStatus(row, column) {
            let status = row.status;
            let constant = {
                0: "未处理",
                1: "已处理",
            };
            return constant[status];
        },
        // 是否锁定,1:锁定;0:正常
        formatLock(row, column) {
            let lock = row.ifLock;
            let constant = {
                0: "正常",
                1: "锁定",
            };
            return constant[lock];
        },
    }
};
</script>

三、效果图

格式化效果图

四、拓展——时间戳格式化

方法描述
getFullYear() 从 Date 对象以四位数字返回年份
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getHours() 返回 Date 对象的小时(0 ~ 23)
getMinutes()返回 Date 对象的分钟 (0 ~ 59)
getSeconds()返回 Date 对象的秒数(0 ~ 59)
<script>
    function changeTimeFormat(time) {
        let date = new Date(time); //将时间戳转换为标准日期格式
        console.log(date); //Wed Aug 17 2022 16:56:15 GMT+0800 (中国标准时间)
        
        // 因为月份是从0开始的,所以实际月份要加1
        let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; 
        let currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
        let hh = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
        let mm = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
        let ss = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
        
        //返回格式:yyyy-MM-dd hh:mm:ss
        return date.getFullYear() + "-" + month + "-" + currentDate + " " + hh + ":" + mm + ":" + ss;
    }
    let now = (new Date()).valueOf(); //当前时间戳(1660726575833)
    console.log(changeTimeFormat(now)); //2022-08-17 16:56:15
</script>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m_sy530

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值