1. 使用?Pre-request Script
?動態轉換?
在發送請求前,將日期字符串轉為時間戳并存儲為環境變量/全局變量。
?示例代碼?
// 將日期字符串(如 "2023-10-01")轉為時間戳(毫秒)
const dateString = "2023-10-01"; // 可以是變量或固定值
const timestamp = new Date(dateString).getTime();// 存儲到環境變量中
pm.environment.set("timestamp", timestamp);// 如果需要秒級時間戳
pm.environment.set("timestamp_seconds", Math.floor(timestamp / 1000));
?使用變量?
在請求的 URL、Body 或 Headers 中通過?{{timestamp}}
?引用:
GET https://api.example.com/data?timestamp={{timestamp}}
?2. 在請求體中直接使用(JSON Body)??
如果 API 需要 JSON 格式的時間戳,可以在 Body 中動態生成:
// Pre-request Script
const timestamp = new Date("2023-10-01").getTime();
pm.environment.set("timestamp", timestamp);
然后在 ?Body → raw → JSON? 中引用變量:
{"date": "2023-10-01","timestamp": {{timestamp}}
}
?3. 使用?Tests Script
?處理響應數據?
如果響應中包含日期字符串,可以在 Tests 腳本中轉換并測試:
// 假設響應返回 { "date": "2023-10-01" }
const responseData = pm.response.json();
const timestamp = new Date(responseData.date).getTime();// 打印到控制臺
console.log("Timestamp:", timestamp);// 斷言時間戳是否有效
pm.test("Timestamp is valid", () => {pm.expect(timestamp).to.be.a('number');
});
?常見日期格式轉換示例?
日期字符串格式 | 轉換代碼(毫秒) | 輸出示例(毫秒) |
---|---|---|
"2023-10-01" | new Date("2023-10-01").getTime() | 1696118400000 |
"2023-10-01T12:00:00Z" | new Date("2023-10-01T12:00:00Z").getTime() | 1696161600000 |
當前時間 | new Date().getTime() | 動態值 |
?注意事項?
-
?時區問題?
new Date("2023-10-01")
?會解析為本地時區的午夜(UTC+8 會轉為前一天的 UTC 時間)。- 明確時區時,建議使用 ISO 格式(如?
"2023-10-01T00:00:00Z"
)。
-
?無效日期處理?
添加校驗邏輯:const date = new Date("invalid-date"); if (isNaN(date.getTime())) {throw new Error("Invalid date string!"); }
-
?秒級時間戳?
如果 API 需要秒級時間戳(如 Unix 時間戳),需除以 1000:Math.floor(new Date().getTime() / 1000)
?示例截圖?
-
?Pre-request Script 設置時間戳?
https://assets.postman.com/postman-docs/pre-request-script.png -
?在請求中引用變量?
https://assets.postman.com/postman-docs/use-environment-variable.png
通過以上方法,你可以靈活地在 Postman 中處理日期與時間戳的轉換!