【发布时间】:2017-01-04 06:46:05
【问题描述】:
我有一个数组${timearray[*]},其中包含这种格式的多次
20:56 20:57 20:59 21:01 21:04
第二个数组${productarray[*]} 包含不同的时间
20:54 20:56 20:58 21:00 21:02
我需要通过减去时间减去产品来获得两者之间的差异。为此,我相信我需要在减去之前将这些时间转换为纪元时间,然后除以 60 并四舍五入到最接近的分钟。我尝试使用这样的 for 循环进行转换。
arraylength=`expr ${#timearray[@]} -1`
for ((l=0; l<=$arraylength; l++))
do
epochtimearray=(`date --date="${timearray[$l]}" +%s`)
done
然而生成的 epochtimearray 只包含最后一次的 epoch 值
echo ${epochtimearray[*]}
1472331840
有没有人看到我在这里遗漏了什么,或者有没有更好的方法来减去时间。
【问题讨论】:
-
如果你只有几个小时+分钟(同一天或者不完整),我真的不明白为什么你需要使用纪元
-
我相信当 timearray 的一个元素已经翻转到 00:00 而 productarray 的相应元素仍然在 23:59 时会导致错误的结果。
标签: arrays bash loops for-loop epoch