Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Imshy

[Resolvido] Converter Minutos, Horas, Dias em segundos

Recommended Posts

Pessoal, já existe uma função no php que transforma minutos, horas, dias (e assim por diante) em segundos?

 

Lembrando que a mktime me retorna em segundos a partir de uma data já definida por eles, só lembro o ano que é 1970.

 

Alguém pode ajudar? =]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imshy (envergonhado[a] ??),

tem como sim, sabendo que o dia possui 24horas

 

24*60 = 1440

dia*minutos = minutos

 

1440*60=86400

minutos*segundos=segundos diarios

 

a mais e ai como eu faco pra resolver, tenho o conteudo so de um dia, eu passei por esse perrengue.

 

usei a DATA JULIANA, que é uma forma de usar os dias corridos do ano, muito usado em astronomia e em uma miseravel operadora de cartao de credito que precisava saber qual o dia corrido da venda, mais retornando...

...eu perdi meu font que fazia isto, vou refazelo e ja posto aki, mais a ideia é essa fazer o calculo de dias corridos * 86400.

 

mais ai você vai falar, nao quero saber quantos segundos teve o ano, e sim entre determinada data, ai vamos usar a cabeca

faz dois calculos, subtrai o resultado do segundo menos o do primeiro, vai ter os dias e você faz a multiplicacao.

 

segue meu codigo pra saber o dia corrido do ano. ressaltando o Ano Bissexto que estamos, entao o $f mais abaixo tem que alterar para 29, ok.

 

<?
$date4 = date("d"); 
$date3 = date("m"); 
$date2 = date("Y");
$date2= substr ( $date2, 0, 4 );
echo "Hoje é $date4/$date3/$date2<br>"; 

$m1=31; $m2=30; $f=28; $ano=365;
if ($date3>=01 and $date3<02){ $ddd=$ano-31; $mes=$m1; }
if ($date3>=02 and $date3<03){ $ddd=$ano-59; $mes=$f; }
if ($date3>=03 and $date3<04){ $ddd=$ano-90; $mes=$m1; }
if ($date3>=04 and $date3<05){ $ddd=$ano-120; $mes=$m2; }
if ($date3>=05 and $date3<06){ $ddd=$ano-151; $mes=$m1; }
if ($date3>=06 and $date3<07){ $ddd=$ano-181; $mes=$m2; }
if ($date3>=07 and $date3<08){ $ddd=$ano-211; $mes=$m1; }
if ($date3>=08 and $date3<09){ $ddd=$ano-242; $mes=$m1; }
if ($date3>=09 and $date3<10){ $ddd=$ano-272; $mes=$m2; }
if ($date3>=10 and $date3<11){ $ddd=$ano-303; $mes=$m1; }
if ($date3>=11 and $date3<12){ $ddd=$ano-333; $mes=$m2; }
if ($date3>=12 and $date3<1){ $ddd=$ano-365; $mes=$m1; }
$julian=$mes-$date4; $julian=$julian+$ddd-1; 
echo "Faltam $julian dias para terminar o ano"; $dj=$ano-$julian;
echo "<br>Hoje é o $dj dia do ano <br>"; echo " 365 - $julian = $dj";
?>

entao como dizem nao de o peixe ensine a pescar,

 

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw a ajuda, Marlon. =D

 

Mas fiz como você disse no início, calculei mesmo. Segue como ficou (ficou simples até):

 

CODE
public function toSeconds( $valor, $tipo )

{

switch( $tipo ){

 

case 'min':

$result = $valor * 60;

break;

 

case 'hr':

$result = $valor * 60;

$result = $result * 60;

break;

 

case 'd':

$result = $valor * 24;

$result = $result * 60;

$result = $result * 60;

break;

 

}

 

return $result;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, basta fazer uma regra de três mais avançada e usar fatores de conversão =).

Mas esse tipo de material você ja deve encontrar por ai.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que assim é bem mais facil...

 

Você define a variável $data_base como sendo sua data base para o calculo, pega o valor em segundos da $data_alvo e dps pega a diferença...

simples =D

 

<?
$data_base = mktime(0,0,0,2,1,2008);
$data_alvo = time();
echo "Desde 01/02/2008 já se passaram ".($data_alvo-$data_base)." segundos.";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, pensei que ele quisesse um conversor global e não partindo de uma data especifica, mas fica legal =).

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe a função gmdate()

funciona assim

 

$tempo = $_SERVER['REQUEST_TIME'];

echo gmdate("H:i:s", $tempo);

 

não sei se funciona nas versões anteriores a 5. Mas na 5 funciona! =DDD

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Tacno, bem vindo de volta ao iMasters.

 

Agradecemos por compartilhar seu conhecimento conosco. Continue colaborando em tópicos mais recentes.

 

Atenciosamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.