Linux 从bash中的日期中减去天数
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18180581/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
subtract days from a date in bash
提问by Shivam Agrawal
I want to subtract "number of days" from a date in bash. I am trying something like this ..
我想从 bash 中的日期中减去“天数”。我正在尝试这样的事情..
echo $dataset_date #output is 2013-08-07
echo $date_diff #output is 2
p_dataset_date=`$dataset_date --date="-$date_diff days" +%Y-%m-%d` # Getting Error
采纳答案by devnull
You are specifying the date incorrectly. Instead, say:
您指定的日期不正确。而是说:
date --date="${dataset_date} -${date_diff} day" +%Y-%m-%d
If you need to store it in a variable, use $(...)
:
如果需要将其存储在变量中,请使用$(...)
:
p_dataset_date=$(date --date="${dataset_date} -${date_diff} day" +%Y-%m-%d)
回答by Juto
To me, it makes more sense if I put the options outside (easier to group), in case I will want more of them.
对我来说,如果我把选项放在外面(更容易分组)更有意义,以防我想要更多。
date -d "$dataset_date - $date_diff days" +%Y-%m-%d
Where:
在哪里:
1. -d --------------------------------- options, in this case
followed need to be date
in string format (look up on $ man date)
2. "$dataset_date - $date_diff days" -- date arithmetic, more
have a look at article by [PETER LEUNG][1]
3. +%Y-%m-%d -------------------------- your desired format, year-month-day
回答by Abhishek Sharma
Below code gives you date one day lesser
下面的代码让你的日期少一天
ONE=1
dataset_date=`date`
TODAY=`date -d "$dataset_date - $ONE days" +%d-%b-%G`
echo $TODAY
回答by Pawe? Dul?ba
Here is my solution:
这是我的解决方案:
echo $[$[$(date +%s)-$(date -d "2015-03-03 00:00:00" +%s)]/60/60/24]
It calculates number of days between nowand 2015-03-03 00:00:00
它计算从现在到2015-03-03 00:00:00之间的天数
回答by Jeremy
one liner for mac os x:
一个适用于 mac os x 的衬垫:
yesterday=$(date -d "$date -1 days" +"%Y%m%d")