我有两个值,一个用于访问进入,一个用于访问作业中的输出。我想要两个时间的差值。
我有这样的代码:
$totalworkhours = $hoursout - $hoursin;
if($minsin > $minsout){
$totalworkhours--;
$totalworkmins = 60 - ($minsin - $minsout);
}else{
$totalworkmins = $minsout - $minsin;
}
echo "Total Work TIME: '$totalworkhours:$totalworkmins'<br>";
然而,我注意到,让我们说,如果minsout> minsin我将去else(8:43-3:48),我会得到7:5..
可以使用str_pad()
函数。所以应该是
echo "Total Work TIME: '$totalworkhours:" . str_pad($totalworkmins, 2, 0, STR_PAD_LEFT) . "'<br>";
PHP内置了这样的功能。
给你:
$in = new DateTime('2015-07-21 10:50:00');
$out = new DateTime('2015-07-21 12:45:00');
$interval = $in->diff($out);
echo $interval->format('%H:%I:%S');
用一个函数来包装这一切:
function shiftDuration($in, $out)
{
$inDate = new DateTime($in);
$outDate = new DateTime($out);
$interval = $inDate->diff($outDate);
return $interval->format('%H:%I:%S');
}
$duration = shiftDuration('2015-07-21 10:50:00', '2015-07-21 12:45:00')
echo "Total Work TIME: $duration"
关于PHP DateTime的更多信息可以在这里找到