bash - 如何在 shell 脚本中找到比当前时间早 30 天的纪元时间?
问题描述
如何在 shell 脚本中找到距当前时间 30 天的纪元时间?如果我的当前时间是纪元毫秒的 X。那么我需要在 shell 脚本中 30 天前的纪元毫秒
#!/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))
但请注意,像闰秒这样的事情可能会让你在这种方法中失望。
推荐阅读
- javascript - 动画元素(进度条)向下滚动效果对容器 div 中的 prepend(新进度条)
- azure - Azure Devops 中缺少克隆按钮
- c# - 查询 SQLite 数据库时,当月份从“单”位变为“双位”时,无法选择日期范围
- ruby-on-rails - 当我从 HAML 文件生成视图时,ID 来自哪里?
- python - 我应该如何退出这个 python 程序?
- reactjs - 当用户滚动过去某个标记时如何执行功能的反应
- c - Char 用 Scanf 存储整个字符串?
- python-3.x - 用python“Innerjoin”两个音频文件以获得重叠的音频
- html - Boostrap 选择图标空间
- c - 变量不断重置