b天中bash中两个日期之间的bash差yyyy-mm-dd在N天内

问题描述 投票:0回答:1

我用bash写了一个长脚本,以某种方式我能够以yyyy-mm-dd格式打印2个日期。

我的输出像是2019-12-30和2019-12-21

第一个日期始终是昨天的日期,我的输出不会打印日期功能,它只会打印日期值,所以。我需要告诉bash它的日期,并给我几天的时间。

#!/bin/bash
START=$(date --date=yesterday +%F)
END=$(date --date "2 days ago" +%F)
DIFF=$(( $END - $START ))

echo " $DIFF "

它只显示85。我如何获得像“ 1”这样的日期的差异(2天前-昨天)

[如果有人回答并给出解释,我将不胜感激

PS:我不知道datediff是否是预制的。 Linux的功能,不在我的centos中6

linux bash variables awk sh
1个回答
0
投票

扩大我的评论:

请参阅接受的答案 Quickly calculate date differences

回答该问题的人编写了一个名为datediff的自定义函数:

$ datediff() {
    d1=$(date -d "$1" +%s)
    d2=$(date -d "$2" +%s)
    echo $(( (d1 - d2) / 86400 )) days
}

我们可以使用相同的功能来比较问题中的两个日期:

$ START=$(date --date=yesterday +%F)
$ END=$(date --date "2 days ago" +%F)
$ echo "${START} : ${END}"
2019-12-30 : 2019-12-29
$ datediff "${START}" "${END}"
1 days
© www.soinside.com 2019 - 2024. All rights reserved.