Как сохранить формат времени Mysql при выполнении математики времени с php?
У меня есть столбец с именем hours_worked
в моей базе данных формат Time
(00:00:00
). Когда я выполняю математику времени с PHP, она преобразуется в целое число.
Поэтому, когда я печатаю это:
<?=$deposit26['hours_worked'];?>
Выход 30:30:15
это здорово.
Но когда я пытаюсь выполнить Time math с другим запросом:
<?=$total_hours_worked = $deposit26['hours_worked'] + $deposit262['hours_worked'];?>
Выход становится 60
, Я хотел бы сохранить оригинал Time
формат. Как это возможно?
2 ответа
Наверное потому что твой $total_hours_worked
предполагается как целое число.
пытаться <?=$deposit26['hours_worked'] += $deposit262['hours_worked'];?>
Используйте 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, например классом, предоставленным glavic на gmail dot com в разделе комментариев документации PHP http://www.php.net/manual/en/class.dateinterval.php