You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman中使用JS循环时如何为指定日期时间累加15分钟

结论

Postman完全可以实现这个需求。Postman的脚本运行沙箱内置了moment.js,不需要手动执行require('moment')引入,直接调用即可。

核心问题修正

你之前写的moment().add(15, 'minutes')是取当前系统时间做计算,只要把固定初始时间作为参数传入moment构造函数,就能基于指定时间做计算,而不是取当前系统时间。

具体实现方案

根据使用场景分两种写法:

  • 单次计算场景:如果只是单次从初始值开始算累加结果,直接传初始值给moment即可
  • 循环逐次累加场景:如果需要每次执行(比如集合批量跑请求)都在上一次的结果上再加15分钟,需要把每次计算的时间值存在Postman的集合/环境变量里,下次执行时先读取上一次存的值再做累加,避免每次都从初始值重新计算。
代码示例

单次从初始值累加

// 传入固定初始时间作为计算基准
const baseTime = moment('2100-01-04T08:00:00');
// 累加15分钟后转ISO格式字符串
const targetTime = baseTime.add(15, 'minutes').toISOString();
// 得到结果:2100-01-04T08:15:00.000Z
console.log(targetTime);

循环逐次累加(适配Postman批量请求场景)

把下面代码放到请求的「预请求脚本」标签页中,每次请求发送前会自动计算下一个15分钟间隔的时间,存在变量里可以直接在请求参数/请求体里用{{current_datetime}}引用:

// 优先读取上一次存在集合变量里的时间,不存在则用初始基准时间
let currentMoment = pm.collectionVariables.get('current_datetime') 
  ? moment(pm.collectionVariables.get('current_datetime'))
  : moment('2100-01-04T08:00:00');

// 在上一次时间基础上加15分钟
currentMoment = currentMoment.add(15, 'minutes');
const timeString = currentMoment.toISOString();

// 把新的时间值存回集合变量,供下次循环使用
pm.collectionVariables.set('current_datetime', timeString);
// 打开Postman控制台可查看每次生成的结果
console.log('当前生成时间:', timeString);
注意事项

不要在每次循环里都重新执行moment('2100-01-04T08:00:00')初始化时间,否则每次都会从固定初始值开始加15分钟,永远只能得到08:15的结果,无法实现逐次递增的效果。

内容的提问来源于stack exchange,提问作者Iftaker Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 04:39:20