2017-04-06 89 views
0

我在我的数据库中有一个名为hours_worked的列,格式为Time00:00:00)。当我使用PHP执行时间数学计算时,它将转换为整数。如何在使用php执行时间数学时保持Mysql时间格式?

所以,当我打印:

<?=$deposit26['hours_worked'];?> 

输出是30:30:15这是伟大的。

但是当我尝试用另一个查询执行时间数学:

<?=$total_hours_worked = $deposit26['hours_worked'] + $deposit262['hours_worked'];?> 

输出成为60。我想保留原来的Time格式。这怎么可能?

回答

1

可能是因为您的$total_hours_worked被假定为整数。

尝试<?=$deposit26['hours_worked'] += $deposit262['hours_worked'];?>

0

使用PHP DateInterval类。 http://www.php.net/manual/en/class.dateinterval.php

30:30:15将代表ISO 8601 PT30H30M15S

$t1 = new DateInterval('PT30H30M15S'); 

要将其他DateInterval添加到...

$t2 = new DateInterval('PT05H55M55S'); 

,我们可以通过研磨和做加法。秒,分钟和小时...

// add seconds, carry minutes 
$t1->s += $t2->s ; 
$t1->i += (int)($t1->s/60) ; 
$t1->s = $t1->s % 60 ; 

// add minutes, carry hours 
$t1->i += $t2->i ; 
$t1->h += (int)($t1->i/60) ; 
$t1->i = $t1->i % 60 ; 

// add hours 
$t1->h += t2->h ; 

// format as string 
echo $t1->format('%h:%I:%S') ; 

或者,利用扩展DateIterval,如一下Gmail点com在PHP文件的注释部分由glavic提供的一类http://www.php.net/manual/en/class.dateinterval.php