2011-01-13 32 views
8

我有一個日期字符串,我可以用bash腳本中的date命令解析和格式化。Bash相對日期(x天前)

但是,我怎麼能確定這個日期是從我的腳本幾天前?我想結束一個數字。

回答

6

你可以做一些日期算術:按秒數一天

DATE=01/02/2010 
echo $((($(date +%s) - $(date -d "$DATE" +%s)) /(24 * 60 * 60))) 
+1

其值得一提的是這裏日期AIX版本沒有一個-d選項,所以雖然OP問的Linux解決方案,這將不會是一個交叉平臺方案。 – frankster 2012-11-19 15:21:48

+0

在OSX的手冊頁上說:`-d dst設置內核的夏令時值。' – andsens 2013-04-13 17:41:47

4

轉換你的約會,現在改成秒以來的時代,減,乘,除法:

#!/bin/bash 

((a = `date -d "Wed Jan 12 02:33:22 PST 2011" +%s`)) 
((b = `date +%s`)) 
echo $(((b-a)/(60*60*24))) 
+5

在附註中,您可以直接在`date`中做相對日期:`date --date =「2011-01- 13 + 5days「` – l0b0 2011-01-13 11:41:21

2

使用日期本身作爲日期的日期值。 例5天前:

date -d "`date`-5days" 
相關問題