SOMAR SEGUNDOS EM PHP

773 views
Skip to first unread message

GenioSan

unread,
Nov 8, 2008, 9:54:38 AM11/8/08
to LISTA PHP
Olá pessoal

To precisando de ajuda!

tenho uma variavel que esta armazenada x segundos....
preciso transformar este valor em horas neste formato 00:00:00

Alguem sabe como consigo fazer isto??


grato

Genivaldo

Jair Henrique

unread,
Nov 8, 2008, 10:05:06 AM11/8/08
to list...@googlegroups.com

Alexandre Gaigalas

unread,
Nov 8, 2008, 10:08:39 AM11/8/08
to list...@googlegroups.com
Suponha que você tenha 8933 segundos. Cada hora é composta de 3600 segundos, logo você divide 8933 por 3600 (que dá 2) e armazena o resto (1733).

Cada minuto tem 60 segundos, logo você divide o resto por 60, que dá 28. Sobram 53 segundos. Aqui está: 2:28:53.

$segundos = 8933;
$horas = (int) ($segundos/3600);
$segundos = $segundos % 3600;
$minutos = (int) ($segundos/60);
$segundos = $segundos % 60;
echo "$horas:$minutos:$segundos";

(int) é pra tirar as casas decimais que o PHP coloca na divisão
% é o operador MOD, que retorna restos de divisões exatas.
--
Alexandre Gomes Gaigalas
alex...@gaigalas.net
http://Alexandre.Gaigalas.Net

Wemerson Januario

unread,
Nov 8, 2008, 10:21:51 AM11/8/08
to list...@googlegroups.com
$valor / 3600 / 24

2008/11/8 Alexandre Gaigalas <alex...@gaigalas.net>



--
Att,
Wemerson Januario da Silva
Desenvolvedor Web/
Supervisor de Atendimento SRF
62 84321645
wemerson...@gmail.com

Anderson Aguiar

unread,
Nov 8, 2008, 10:33:30 AM11/8/08
to list...@googlegroups.com
NOSSAA

pra q toda essa conta?

mktime(), depois converte pro q tu kiser...

Oo

2008/11/8 Alexandre Gaigalas <alex...@gaigalas.net>



--
----------------------------------------
Att Anderson Aguiar
Cel: 8811-0465
Site: www.revsoft.info
E-mail: revs...@gmail.com


Eduardo Arruda

unread,
Nov 8, 2008, 9:53:07 PM11/8/08
to list...@googlegroups.com
Galera veja que o alexadre está corretíssimo, ou você acha que a
função mktime(); nao tem conta tb nao??
Resolveu da maneira que um programador resolve, fazendo suas próprias
funções e quando realmente necessário usando as já existentes.

Nao entendi --> $valor / 3600 / 24 , você pode me explicar esse código?

2008/11/8 Anderson Aguiar <revs...@gmail.com>:

Alessandro Santos

unread,
Nov 9, 2008, 8:54:53 AM11/9/08
to list...@googlegroups.com
eu tenho essa função que uso num projeto meu:

function SegundosParaHMS ( $Segundos )
{
// Calcula a quantidade de horas
$H = intval( $Segundos / 3600 );

// Calcula a quantidade de minutos
$M = $Segundos % 3600;
$M = intval( $M / 60 );

// Calcula a quantidade de segundos
$S = ( $Segundos - ( ( $H * 3600 ) + ( $M * 60 ) ) );

// Insere zeros à esquerda se necessário
strlen( $H ) < 2 ?
$H = '0'.$H :
$H = $H;
strlen( $M ) < 2 ?
$M = '0'.$M :
$M = $M;
strlen( $S ) < 2 ?
$S = '0'.$S:
$S = $S;

// Retorna a string
return $H. ':' .$M. ':' .$S;
}

Se existe um meio mais fácil, não sei, mas esse cara aí ajuda um bocado.

Se conseguir melhorar alguma coisa nela me avisa.

Não sei, mas mktime faz isso? Pelo que me lembre ele só trabalha com timestamps.

* correndo ver o manual.

2008/11/9 Eduardo Arruda <duduz...@gmail.com>:
--
[]'s & =*'s do lee
http://alessandrosantos.com.br
# Alessandro Ramos dos Santos @ Itaporanga @ SP @ Brasil
# MSN: lee.rain # Gtalk: edenfall # Orkut: 7093009035179968825

"A nação que resolve trocar um pouco de liberdade por um pouco de
ordem não consegue nenhuma das duas, e não merece a ambas" - Thomas
Jefferson
Reply all
Reply to author
Forward
0 new messages