Как получить последние 12 месяцев из «даты» cygwin со статическим значением времени - PullRequest
0 голосов
/ 11 октября 2011

У меня есть этот скрипт

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

, который отлично подходит для получения последних 12 месяцев от даты, месяц за месяцем. Я хочу иметь статическое значение для используемого времени, чтобы вместо возврата на 12 месяцев от ТЕКУЩЕГО ВРЕМЕНИ он возвращался из статического времени.

Я использую это с Github и хочу соответствовать коммитам, с которыми синхронизируюсь, когда хочу вернуться на x месяцев. Как указать время с точностью до секунды и использовать его с этим скриптом?

1 Ответ

0 голосов
/ 11 октября 2011

Вы можете просто использовать то, что доказывает 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...