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

如何用shell脚本计算两个毫秒级epoch时间差值并判断令牌剩余天数

Shell 脚本实现毫秒级 epoch 时间戳有效期校验

核心实现逻辑

  • 单位转换规则:10天对应的毫秒阈值为 864000000(计算方式:10 * 24小时 * 3600秒 * 1000毫秒)
  • 运算逻辑:用令牌过期毫秒时间戳减去当前毫秒时间戳,得到剩余有效毫秒数,直接和阈值对比即可实现判断,如需展示剩余天数再做除法即可
  • 示例值校验:你给出的示例过期时间1640237992708减示例当前时间1634108098242得到差值约6130万毫秒,对应约71天,大于10天阈值,不需要触发刷新

完整可运行脚本

#!/bin/bash

# 替换为实际读取到的令牌过期毫秒级时间戳
TOKEN_EXPIRE_MS=1640237992708
# 获取当前系统毫秒级epoch时间戳(Linux默认GNU date支持,macOS需替换为gdate)
CURRENT_MS=$(date +%s%3)
# 10天对应的毫秒阈值
TEN_DAYS_MS=864000000

# 计算剩余有效毫秒数
REMAIN_MS=$(( TOKEN_EXPIRE_MS - CURRENT_MS ))

# 阈值判断
if [ ${REMAIN_MS} -lt ${TEN_DAYS_MS} ]; then
    echo "令牌剩余有效期不足10天,触发新令牌生成逻辑"
    # 此处写入你生成新令牌的具体业务代码
else
    REMAIN_DAYS=$(( REMAIN_MS / 86400000 ))
    echo "令牌有效期充足,剩余约 ${REMAIN_DAYS} 天"
fi

兼容说明

  • macOS系统自带的date命令不支持毫秒输出,可执行brew install coreutils安装GNU日期工具后,将脚本里的date替换为gdate即可正常运行
  • 如果需要更精确的天数判断,可通过awk做浮点运算,常规有效期校验用上述整数运算即可满足安全需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:05