bash bash 中的 2 个日期在 N 天内按 yyyy-mm-dd 相差
bash difference between 2 dates in bash by yyyy-mm-dd in N days
我在 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里没有
扩展我的评论:
查看 Quickly calculate date differences
的已接受答案
回答该问题的人写了一个名为 datediff
的自定义函数:
$ datediff() {
d1=$(date -d "" +%s)
d2=$(date -d "" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
我们可以使用相同的函数来比较问题中的 2 个日期:
$ 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
我在 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里没有
扩展我的评论:
查看 Quickly calculate date differences
的已接受答案回答该问题的人写了一个名为 datediff
的自定义函数:
$ datediff() {
d1=$(date -d "" +%s)
d2=$(date -d "" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
我们可以使用相同的函数来比较问题中的 2 个日期:
$ 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