Bash从今天起计算x个月

时间:2015-02-11 17:26:25

标签: bash date

我正在处理这种日期格式

20130702

并希望计算15个月。

我目前正在使用

date -v 10m

使用我当前的日期格式,如何创建if语句来检查日期是否不晚于10个月

谢谢大家!!

1 个答案:

答案 0 :(得分:3)

这很简单:

date -d '20130702 - 15 months'
Mon Apr  2 00:00:00 BST 2012

如果你想保持相同的格式:

date -d '20130702 - 15 months' +%Y%m%d
20120402

如果声明WRT给你,你可以先转换为纪元:

#! /bin/bash

date="20130702"
date_epoch=$( date -d "20130702" +%s)
_10months_ago=$(date -d 'now -10 months' +%s)

if [ "$date_epoch" -lt "$_10months_ago" ];then
    echo "$date was before last 10 months"
else
    echo "$date is within last 10 montsh"
fi