如何使用静态时间值从cygwin“date”获取过去12个月

时间:2011-10-11 17:36:11

标签: git date github cygwin

我有这个脚本

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

非常适合从过去12个月开始,逐月,逐月。我希望在使用的时间内有一个静态值,因此它不会从当前时间返回12个月,而是从静态时间返回。

我正在和Github一起使用它,我希望能够在我想要回到x个月时与我同步的提交保持一致。如何将时间指定为秒,并将其与此脚本一起使用?

1 个答案:

答案 0 :(得分:0)

您可以使用git向您证明的内容:git log --since='X seconds ago',例如列出去年的所有提交(大约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"