从日期开始的X天增量

时间:2013-08-29 14:30:40

标签: macos bash date

我需要在OSX中找到(我之所以提到这一点,因为date与大多数Linux发行版有不同的选项),自某个日期起已经过了多少X天的增量。

假设日期是2013年7月31日,我需要查看已经过了10天的增量。今天(2013年8月29日)运行命令 - 结果为2,明天(2013年8月30日),结果为3

2 个答案:

答案 0 :(得分:1)

获取时间戳然后计算它:

echo "$(( ($(date -d 'now' '+%s') - $(date -d 'July 31, 2013' '+%s')) / (10 * 24 * 3600) ))"

更易读的形式:

now=$(date -d 'now' '+%s')
other=$(date -d 'July 31, 2013' '+%s')
echo "$(( (now - other) / (10 * 24 * 3600) ))"

时间戳以纪元(1970-01-01 UTC)为单位,以秒为单位。

答案 1 :(得分:1)

根据@ konsolebox的回答,这里是如何在OSX上做到这一点(请参阅他在Linux上的解决方案)。

echo "$(( ($(date '+%s') - $(date -j -f '%Y-%m-%d' '2013-07-31' '+%s')) / (10 * 24 * 3600) ))"

或(细分)

now=$(date '+%s')
other=$(date -j -f '%Y-%m-%d' '2013-07-31' '+%s')
echo "$(( (now - other) / (10 * 24 * 3600) ))"