Как сохранить формат времени 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

Другие вопросы по тегам