运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

在Linux中如何比较两个DateTime字符串并以小时为单位返回差异? (bash shell)

运维开发网 https://www.qedev.com 2020-07-17 11:12 出处:网络
我可以使用以下代码在php中执行此操作: $dt1 = \'2011-11-11 11:11:11\'; $t1 = strtotime($dt1);
我可以使用以下代码在php中执行此操作:

$dt1 = '2011-11-11 11:11:11';
$t1 = strtotime($dt1);

$dt2 = date('Y-m-d H:00:00');
$t2 = strtotime($dt2);

$tDiff = $t2 - $t1;

$hDiff = round($tDiff/3600);

$hDiff会在几小时内给我结果.

如何在bash shell中实现上述功能?

您可以使用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"

希望这可以帮助!

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号