我需要给给定日期添加 10 分钟:
givenDate = 2016-10-25 18:22:37
Run Code Online (Sandbox Code Playgroud)
执行时:
newDate=$(date +'%Y-%m-%d %T' --date="$givenDate + 10 minutes")
echo $newDate
Run Code Online (Sandbox Code Playgroud)
我得到:
2016-10-25 00:10:00
代替
2016-10-25 18:32:37
第二个问题:如何对分钟数进行四舍五入,以便我可以根据示例获得这些结果:
18:08 -> 18:10
18:32 -> 18:40
18:46 -> 18:50
18:55 -> 19:00
谢谢。
对于第一个问题,+像这样删除:
date +'%Y-%m-%d %T' --date="$givenDate 10 minutes"
Run Code Online (Sandbox Code Playgroud)
对于第二个问题,我们必须提取当前分钟的最后一位数字,然后使用模 5 计算要添加的分钟数以使其四舍五入:
givenDate="2016-10-25 18:22:37"
minute=$(echo $givenDate | sed 's/.*\([0-9]\):..$/\1/')
rounder=$((5 - minute % 5))
date +'%Y-%m-%d %T' --date="$givenDate $rounder minutes"
Run Code Online (Sandbox Code Playgroud)
请注意,尚未考虑秒数