传入一个日期,获取N天前的日期
例如,传入2015-10-10,获取3天前的日期:
[liuxiaowen@getway ~]$ day1=2015-10-10
##先将传入的2015-10-10转换成精确到秒的时间戳
[liuxiaowen@getway ~]$ time1=`date +%s -d "$day1"`
[liuxiaowen@getway ~]$ echo $time1
1444406400
##在利用时间戳减去3天的秒数(3*86400秒),得到3天前的时间戳
[liuxiaowen@getway ~]$ time2=$(($time1-3*86400))
[liuxiaowen@getway ~]$ echo $time2
1444147200
##将3天前的时间戳转换成日期
[liuxiaowen@getway ~]$ day2=$(date +%Y-%m-%d -d "1970-01-01 UTC $time2 seconds")
[liuxiaowen@getway ~]$ echo $day2
2015-10-07
获取两个日期之间相差的天数
还是利用上面的办法,获取2015-10-10和2015-09-27之间相差的天数
[liuxiaowen@getway ~]$ day1=2015-10-10
[liuxiaowen@getway ~]$ day2=2015-09-27
[liuxiaowen@getway ~]$
[liuxiaowen@getway ~]$ time1=`date +%s -d "$day1"`
[liuxiaowen@getway ~]$ time2=`date +%s -d "$day2"`
[liuxiaowen@getway ~]$
[liuxiaowen@getway ~]$ days=$((($time1-$time2)/86400))
[liuxiaowen@getway ~]$ echo $days
13
获取今天、昨天、前天的日期
###今天
[liuxiaowen@getway ~]$ date -d "now" +%Y-%m-%d
2015-10-10
[liuxiaowen@getway ~]$ date -d "today" +%Y-%m-%d
2015-10-10
###昨天
[liuxiaowen@getway ~]$ date -d "yesterday" +%Y-%m-%d
2015-10-09
[liuxiaowen@getway ~]$ date -d "1 days ago" +%Y-%m-%d
2015-10-09
###前天
[liuxiaowen@getway ~]$ date -d "2 days ago" +%Y-%m-%d
2015-10-08
其他Linux shell中关于日期时间的处理,基本上都可以参考上面的方法来获取。
如果觉得本博客对您有帮助,请 赞助作者 。