Jump to content

Colocar da maneira correta: Tempo online


pexoia
 Share

Recommended Posts

Boas pessoal 🙂

É o seguinte, vou já passar ao assunto que me trouxe aqui no qual tenho uma duvida 😛

Eu estou a desenvolver um site de um jogo, onde pronto cada jogador pode ver quando tempo online é que já passou no jogo.

E eu tenho apresentado desta maneira 011599488bb0ee5e0383955364812e25.png

O que eu queria, era digamos por isto a mostrar da maneira correta, ou seja o que eu quero dizer com isto ?

É o seguinte, queria que isso mostrasse tipo : 2 meses 5 dias, 23 horas, 40 minutos, em vez 5683 minutos de jogo :c

Será que alguém pode dar aí uma mãozinha? 😄

Ficaria extremamente agradecido 😛

Edited by pexoia
Link to comment
Share on other sites

A minha ideia inicial:

Como o psiico disse, acho que a funcao date() é capaz de dar, mas é melhor multiplicar os minutos por 60, para ficar em segundos (porque o timestamp é ém segundos)

O que eu me lembrei enquanto escrevia:

Nao vai dar porque ao fim de 30 dias a funcao date() começa a contar no dia 1 outra vez ...

O melhor será uma funcao para isso!

Nada de especial

exemplo 3270 minutos -> 2dias 6horas 30minutos

(arredonda sempre por defeito)

dias = (minuto/60/24); //2dias

horas = (minutos/60)-(24*dias); //6horas

minutos = minutos-(24*dias*60)-(horas*60); //30minutos

é obvio que há gormas melhores de fazer isto, mas surgiu assim de repente

Link to comment
Share on other sites

Boas tardes mais uma vez 🙂

Bem já fiz algum progresso quanto ao objetivo que desejo alcançar 😛

Já aparece assim : e8fe1f2316196099b678d5ad65f7c783.png

Mas agora estou com um ligeiro probleminha, que é o seguinte:

Eu queria que quando batesse nas 24h e transformasse logo para dia. O que quero dizer com isto ?

Queria que ele em vez de 25h e 10 minutos, ficasse 1 dia, 1h e 10 minutos 🙂

Alguem me pode ajudar só a emendar este pormenor? Juro que não chateio mais ninguem ahah <3

Segue em baixo o meu código

function tempoCorreto($mins) {

// Se os minutos estiverem negativos

if ($mins < 0)
   $min = abs($mins);
else
   $min = $mins;
// Arredonda a hora
$h = floor($min / 60);
$m = ($min - ($h * 60)) / 100;
$horas = $h + $m;


if ($mins < 0)
   $horas *= -1;

// Separa a hora dos minutos

$sep = explode('.', $horas);
$h = $sep[0];
if (empty($sep[1]))
   $sep[1] = 00;
   $m = $sep[1];

// Aqui um pequeno detalhe pra colocar um zero no final
if (strlen($m) < 2)
   $m = $m . 0;

return sprintf('%02d horas, %02d', $h, $m);
}

Edited by pexoia
Link to comment
Share on other sites

e o pessoal sempre a complicar ...

<?php

function tempoCorreto($mins) {
   $dias = floor($mins / (24*60));
   $mins = $mins % (24*60);

   $horas = floor($mins / 60);
   $mins = $mins % 60;

   $output = "";
   if ($dias)  $output .= " $dias dias";
   if ($horas) $output .= " $horas horas";
               $output .= " $mins minutos";

   return $output;
}
  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Sim HappyHippyHippo eu sei que o código dava para otimizar mais xD

Mas pronto, quando uma pessoa ainda está a aprender vamos sempre pela maneira mais longa e mais complicado por vezes u_u

Tenho muita consideração por ti e pelo teu conhecimento, és um excelente programador pelo que vejo, não só pela GIGANTEEEE ajuda que me deste, mas tambem pelo que vejo a ajudares os outros 🙂

Muitissimoo obrigado sincero mesmo <333

Cumprimentos

Edited by pexoia
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.