我在下面使用 Ubuntu
11.04 获取上一个、当前和下个月:
LAST_MONTH=`date +'%m' -d 'last month'`
NEXT_MONTH=`date +'%m' -d 'next month'`
THIS_MONTH=`date +'%m' -d 'now'`
直到今天,2012 年 10 月的最后一天 (2012-10-31),它都运行良好
截至目前,我得到以下结果:
$ date
Wed Oct 31 15:35:26 PDT 2012
$ date +'%m' -d 'last month'
10
$ date +'%m' -d 'now'
10
$ $ date +'%m' -d 'next month'
12
我想输出应该是 9
, 10
, 11
。
不明白为什么 date
输出的行为是这样的。什么应该是获得一致 previous
, current
和 next
月份的好方法?
原文由 greeness 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是
date
从字面上理解您的请求,并尝试使用 9 月 31 日(即 10 月 31 日减去一个月)的日期,然后因为不存在,所以它移到了第二天。date
文档(来自info date
)具有以下建议: