如何比较两个DateTimestring并以小时为单位返回差异? (bashshell)

我可以用下面的代码在php中做到这一点:

$dt1 = '2011-11-11 11:11:11'; $t1 = strtotime($dt1); $dt2 = date('Ymd H:00:00'); $t2 = strtotime($dt2); $tDiff = $t2 - $t1; $hDiff = round($tDiff/3600); 

$hDiff将在几小时内给我结果。

我如何在bash shell中实现上述function?

Solutions Collecting From Web of "如何比较两个DateTimestring并以小时为单位返回差异? (bashshell)"

你可以使用date命令来实现这一点。 man date会为您提供更多的细节。 一个bash脚本可能是这些行上的东西(似乎在Ubuntu 10.04 bash 4.1.5上工作正常):

 #!/bin/bash # Date 1 dt1="2011-11-11 11:11:11" # Compute the seconds since epoch for date 1 t1=`date --date="$dt1" +%s` # Date 2 : Current date dt2=`date +%Y-%m-%d\ %H:%M:%S` # Compute the seconds since epoch for date 2 t2=`date --date="$dt2" +%s` # Compute the difference in dates in seconds let "tDiff=$t2-$t1" # Compute the approximate hour difference let "hDiff=$tDiff/3600" echo "Approx hour diff b/w $dt1 & $dt2 = $hDiff" 

希望这可以帮助!