如何从 cygwin“日期”获取过去 12 个月的数据具有静态时间值

发布于 2024-12-09 13:28:43 字数 200 浏览 1 评论 0原文

我有这个脚本

"$(date +%Y-%m-01) -$i Months" +%Y-%m)-01"

非常适合获取过去 12 个月的数据 想要一个正在使用的时间的静态值,这样我就可以从静态时间返回,而不是从当前时间返回 12 个月。

我 想要与提交我想回到 x 个月时同步。如何指定时间到秒并将其与此脚本一起使用?

I've got this script

"$(date +%Y-%m-01) -$i months" +%Y-%m)-01"

that works great for getting the last 12 months from date, month by month. I want to have a static value for the time being used, so that instead of going back 12 months from the CURRENT TIME it is going back from a static time.

I'm using this with Github and I want to be consistent with the commits I sync to when I want to go back x months. How to specify time down to the second and use it with this script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

汐鸠 2024-12-16 13:28:43

您可以使用 git 向您证明的内容:git log --since='X 秒前',例如列出去年的所有提交(大约 365*24* 60*60=31536000 秒)

$ git log --since='31536000 seconds ago'

您可以使用 --until 给出上限。

如果您想列出 SOME_DATE 之前一年的所有提交,您可以使用 date

# the current time (NOW)
date +%s

# the time a SOME_DATE (e.g. 2011-01-01)
date +%s --date=2011-01-01

# one year before SOME_DATE is
#
#   31536000 + NOW - SOME_DATE
#
# (use bc for calculations)
SECONDS=$(echo 31536000 -  $(date +%s) + $(date +%s --date=2011-01-01) | bc)

# putting it all together:
# display all commits since one year before 2011-01-01 until 2011-01-01
git log --since="$(echo 31536000 + $(date +%s) - $(date +%s --date=2011-01-01)| bc) seconds ago" --before="$(echo $(date +%s) - $(date +%s --date=2011-01-01) | bc -l) seconds ago"

You could just use what git proves you: git log --since='X seconds ago', e.g. to list all commits in the last year (approximately 365*24*60*60=31536000 seconds)

$ git log --since='31536000 seconds ago'

You can give an upper bound with --until.

If you want to list all commits one year before SOME_DATE you can use date.

# the current time (NOW)
date +%s

# the time a SOME_DATE (e.g. 2011-01-01)
date +%s --date=2011-01-01

# one year before SOME_DATE is
#
#   31536000 + NOW - SOME_DATE
#
# (use bc for calculations)
SECONDS=$(echo 31536000 -  $(date +%s) + $(date +%s --date=2011-01-01) | bc)

# putting it all together:
# display all commits since one year before 2011-01-01 until 2011-01-01
git log --since="$(echo 31536000 + $(date +%s) - $(date +%s --date=2011-01-01)| bc) seconds ago" --before="$(echo $(date +%s) - $(date +%s --date=2011-01-01) | bc -l) seconds ago"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文