Apifox 中如何对接口返回的时间戳进行转换?图文教程

Apifox 中如何对接口返回的时间戳进行转换?图文教程

时间戳在 API 数据中常被用于记录事件发生的具体时刻,但对于终端用户而言,直接呈现时间戳并不直观。因此,将时间戳转换成易读的日期格式,能够提升数据可理解性和用户体验。


Apifox 中,通过添加后置操作并编写 JavaScript 脚本,我们能够灵活处理时间戳,实现从接口返回的原始数据中提取时间戳,并将其转化为人类可读的日期。这个过程既强化了数据的可视化表达,也为开发者提供了一种便捷的方式来优化和定制 API 数据的展示,具体操作如下文。

1.【后置操作】添加脚本

在 Apifox 中打开一个项目,然后在接口的【修改文档->后置操作->添加后置操作】中,添加一个自定义脚本,如下图所示:

Apifox 对时间戳进行转换
Apifox 对时间戳进行转换

2.获取时间戳

上面的步骤操作完毕,就可以编写 Javascript 脚本来进行转换了。我们首先要将接口返回的时间戳提取出来,假设接口返回的是如下的数据结构:

{
    "code": "0",
    "message": "success",
    "data": {
        "title":"Apifox 最佳实践"
        "timestamp": "1707026677"
    }
}

我们要将 data 里的 timestamp 时间戳提取出来,那么可以编写如下的脚本(注意:具体的脚本还需要看你接口返回的数据结构是什么):

let data = pm.response.json().data.timestamp;
Apifox 对时间戳进行转换

如果想了解为什么这么写,可以查看 Apifox 的 pm 脚本 API,它是全面兼容 Postman 的。

3.转换时间戳

获取时间戳后,我们就可以将时间戳转换为日期格式。注意下面的代码需放置在上一步骤中获取的“时间戳代码”之后。

通过 Moment 库转换

Apifox 中内置了 Moment 库,可以直接导入,然后使用,方法如下:


1)直接使用 Moment 库提供的moment.unix(Number)方法进行转换:

let moment = require("moment");

// 直接使用时间戳创建 moment 对象并格式化
let formattedDate = moment.unix(data).format("YYYY-MM-DD HH:mm:ss");

console.log(formattedDate);
Apifox 对时间戳进行转换


2)先将时间戳转为日期对象,然后再格式化:

let moment = require("moment")

// 转换时间戳为日期对象
let dateObject = new Date(data * 1000); // 将时间戳转换为毫秒

let formattedDate = moment(dateObject).format("YYYY-MM-DD HH:mm:ss");

console.log(formattedDate);
Apifox 对时间戳进行转换

如果想了解 Apifox 内置了哪些库,可以查看 Apifox 的内置 JS 类库

通过原生 JS 转换

通过原生 JS 转换需要的代码有点多,如下所示:

function formatTimestamp(timestamp) {
    const date = new Date(timestamp * 1000); // 将时间戳转换为毫秒
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,所以需要+1;padStart用于补齐为两位
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');

    const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    return formattedDate;
}

const formattedDate = formatTimestamp(data);

console.log(formattedDate);
Apifox 对时间戳进行转换

总结


Apifox 中,通过添加后置操作的自定义脚本,获取到接口返回的时间戳后,就可以使用 JavaScript 脚本提取并转换时间戳为日期格式,转换时可通过 Moment 库或原生 JS 实现。 Moment 库提供方便的方法,而原生 JS 需要较多代码。你根据接口返回的数据结构调整脚本,具体可参考 Apifox 的 pm 脚本 API 和内置 JS 类库。总体而言,通过后置操作和脚本处理,可有效管理时间戳转换。

知识扩展:

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态