0

我想通过传入一个字符串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))"
4

1 回答 1

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"
于 2013-07-10T10:03:50.930 回答