我想通过传入字符串HH:MM
来计算时间差,以设置时间并计算此时间与当前系统时间之间的差异。
我知道date --set="2013-07-10"+%T
(或类似的东西)。但我无法弄清楚如何将时间部分设置为我传入的字符串HH:MM
值并将数据保留为当前日期。然后,计算我试图使用下面的内容将其更改为时间戳值;我从其他用户那里找到了:
mydate=??
date1=$($mydate +"%s") #my set date/time here
date2=$(date +"%s")
diff=$(($date2-$date1))
echo "$(($diff / 60)) minutes and $(($diff % 60))"
答案 0 :(得分:2)
您可以使用date -d hh:mm
创建具有指定时间的新日期。
示例:
$ date -d 11:15
Wed Jul 10 11:15:00 BST 2013
使用此功能,您可以编写以下脚本:
time=11:15
now=$(date +%s)
other=$(date -d $time +%s)
diff=$((other-now))
echo "$((diff / 60)) minutes and $((diff % 60)) seconds"