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

如何在Curl请求中生成并传递当前时间减1小时的UNIX时间戳

解决方法:将早1小时的UNIX时间戳传入curl请求

这其实是shell命令替换的典型场景——你需要让shell先执行date命令拿到时间戳,再把结果嵌入到curl的JSON参数里。下面给你两种实用的方案:

方案一:直接嵌入命令替换

可以用$()(比反引号可读性更好,更推荐)把date命令包裹起来,通过引号拼接把结果插入到JSON中:

curl -X PUT -H "Content-Type: application/json" -d '{"time":'"$(date -d '1 hour ago' "+%s")"'}' url

这里的引号拼接逻辑很简单:

  • '{"time":' 是单引号包裹的固定字符串部分
  • "$(date ...)" 让shell先执行date命令,返回1小时前的UNIX时间戳结果
  • '}' 是结尾的固定字符串部分
    三者拼接后就会生成{"time":1620000000}这种符合要求的JSON格式。

方案二:先存变量再使用

如果觉得直接嵌入命令有点杂乱,也可以先把时间戳存入变量,再在curl命令里引用变量,可读性更强:

# 第一步:获取1小时前的UNIX时间戳并存入变量
one_hour_ago=$(date -d '1 hour ago' "+%s")

# 第二步:用变量发起请求
curl -X PUT -H "Content-Type: application/json" -d '{"time":'"$one_hour_ago"'}' url

为什么你之前的方法不行?

如果直接把date命令写在单引号包裹的JSON里(比如'{"time":date -d ...}'),shell会把整个内容当成纯字符串,不会执行date命令。只有把命令替换放在单引号之外,shell才会先解析执行命令,再把结果代入到最终的请求体中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:37:53