如何在shell脚本中找到比当前时间早30天的历元时间(毫秒)



如何在shell脚本中从当前时间找到30天的epoch时间?如果我的当前时间是以epoch毫秒为单位的X。然后我需要在shell脚本中提前30天的epoch毫秒

#!/bin/sh
current=$(date +'%s%3N')
echo $current
oldtimestamp=$((current - 30*24*60*60))
echo "old is $oldtimestamp"

这似乎不给30天旧的epoch ms。请让我知道如何获得它。提前感谢

date命令支持一些自然语言表达式:

date  +'%s%3N' --date='30 days ago'

当然,与${current}相比,这将缩短几毫秒,因为执行这些命令本身需要时间,但可能对您来说已经足够近了。

否则,正确的算术表达式就是Jonathan Leffler所写的:

oldtimestamp=$((current - 30*24*60*60*1000))

但请注意,像闰秒这样的事情可能会让你偏离这种方法。

最新更新