Apifox 中如何对接口返回的时间戳进行转换?图文教程
时间戳在 API 数据中常被用于记录事件发生的具体时刻,但对于终端用户而言,直接呈现时间戳并不直观。因此,将时间戳转换成易读的日期格式,能够提升数据可理解性和用户体验。
在 Apifox 中,通过添加后置操作并编写 JavaScript 脚本,我们能够灵活处理时间戳,实现从接口返回的原始数据中提取时间戳,并将其转化为人类可读的日期。这个过程既强化了数据的可视化表达,也为开发者提供了一种便捷的方式来优化和定制 API 数据的展示,具体操作如下文。
1.【后置操作】添加脚本
在 Apifox 中打开一个项目,然后在接口的【修改文档->后置操作->添加后置操作】中,添加一个自定义脚本,如下图所示:
2.获取时间戳
上面的步骤操作完毕,就可以编写 Javascript 脚本来进行转换了。我们首先要将接口返回的时间戳提取出来,假设接口返回的是如下的数据结构:
{
"code": "0",
"message": "success",
"data": {
"title":"Apifox 最佳实践"
"timestamp": "1707026677"
}
}
我们要将 data 里的 timestamp 时间戳提取出来,那么可以编写如下的脚本(注意:具体的脚本还需要看你接口返回的数据结构是什么):
let data = pm.response.json().data.timestamp;
如果想了解为什么这么写,可以查看 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);
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 的内置 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 中,通过添加后置操作的自定义脚本,获取到接口返回的时间戳后,就可以使用 JavaScript 脚本提取并转换时间戳为日期格式,转换时可通过 Moment 库或原生 JS 实现。 Moment 库提供方便的方法,而原生 JS 需要较多代码。你根据接口返回的数据结构调整脚本,具体可参考 Apifox 的 pm 脚本 API 和内置 JS 类库。总体而言,通过后置操作和脚本处理,可有效管理时间戳转换。
知识扩展: