shell时间相减的函数_shell时间加减运算

最近要写一个根据一个初始时间戳距离当前日期的天数来做的业务的逻辑自动化处理,搜索到下面这些常用日期加减法运算,值得记录下

1。我需要运用的时间计算如下

如:初始时间戳为1382716418

time1=$(($(date +%s ) - 1382716418));

1382716418与当前日期相差的天数days=`$time1/86400|bc`

2。 下面是做一个时间加法的详细演示

这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间变成秒。

如:1990-01-01 01:01:01 加上 1小时 20分

处理方法如下:

a.将基础时间转为时间戳

time1=$(date +%s -d '1990-01-01 01:01:01')//将日期时间转成时间戳

echo $time1

631126861 【时间戳】

b.将增加时间变成秒

[root@localhost ~]# time2=$((1*60*60+20*60))

[root@localhost ~]# echo $time2

4800

c.两个时间相加,计算出结果时间

time1=$(($time1+$time2))

time1=$(date+%Y-%m-%d %H:%M:%S -d "@$time1" ); //将时间戳转成日期时间

echo $time1

1990-01-01 02:21:01

温馨小知识:

shell 单括号运算符号:

a=$(date);等同于:a=`date`;

双括号运算符:

a=$((1+2)) 等同于a=`expr 1 + 2` 等同于a=`1+2|bc`

附加知识

[root@weibin-fedora var]# echo $(date --date='3 day')

2011年 11月 04日 星期五 01:25:44 CST

[root@weibin-fedora var]# echo $(date --date='3 day ago')

2011年 10月 29日 星期六 01:26:07 CST

[root@weibin-fedora var]# echo $(date --date='3 month')

2012年 02月 01日 星期三 01:26:20 CST

[root@weibin-fedora var]# echo $(date --date='3 month ago')

2011年 08月 01日 星期一 01:26:28 CST

[root@weibin-fedora var]# echo $(date --date='3 year')

2014年 11月 01日 星期六 01:26:42 CST

[root@weibin-fedora var]# echo $(date --date='3 year ago')

2008年 11月 01日 星期六 01:26:48 CST

[root@weibin-fedora var]# echo $(date --date='3 minute ')

2011年 11月 01日 星期二 01:22:20 CST

[root@weibin-fedora var]# echo $(date --date='3 minute ago')

2011年 11月 01日 星期二 01:26:20 CST

[root@weibin-fedora var]# echo $(date --date='3 hour ago')

2011年 10月 31日 星期一 22:30:11 CST

[root@weibin-fedora var]# echo $(date --date='3 hour')

2011年 11月 01日 星期二 04:30:24 CST

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值