问题描述
我希望得到一些帮助,以找出两个日期之间的天数差异。
日期 1:系统日期
日期 2:2022 年 3 月 20 日(未来)
我想做的是将其转换为 EPOCH 时间,减去然后除以 86400 以获得两个日期之间的天数。但是,我遇到了 systax 的问题。这是我尝试过的:
days_remaining=('date "+%s" -d "Mar 20 2022"'-'date "+%s" -d "$(date '+%b %d %Y')"')/86400
但是上面的方法不起作用。任何帮助将不胜感激。
解决方法
要在 bash 中进行计算,您需要一个算术上下文 (( ))
。此外,要执行 date
命令,您必须将它们放在 $()
内,而不是字符串引号 ''
。
顺便说一句:date
中的最后一个 date "+%s" -d "$(date '+%b %d %Y')
命令不是必需的。 date +%s
将打印当前日期时间。除以 86400
时会丢失时间部分,因为 bash 仅使用整数。
(( days_remaining = ($(date -d "Mar 20 2022" +%s) - $(date +%s)) / 86400 ))
,
你可以使用这个
days_remaining=$(($(($(date "+%s" -d "Mar 20 2022") - $(date "+%s" -d "$(date '+%b %d %Y')"))) / 86400))