1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP] Relógio Digital

Discussão em 'Web Development' iniciada por yen, 3 de Novembro de 2012. (Respostas: 4; Visualizações: 1267)

  1. yen

    yen

    Um relogio digital com imagens em que pega o valor do date('h') por exemplo e se esse valor der 22 mostrar 22 em imagem

    em que eu tenho 0.gif,1.gif,2.gif... 9.gif !

    partindo do ponto que a minha variavel hora $hora = date('h') (apanha a hora) e a hora seja 22.
    switch($hora){
    case 22:
    echo '<img src="imgdigital/2.gif" />';
    echo '<img src="imgdigital/2.gif" />';
    break;
    }
    ...
    teria que fazer isto 24 vezes so para a hora...

    Gostava de saber se este codigo esta bem ou se poderia usar um bem mais curto e fizesse o mesmo obrigado.
     
    Última edição: 3 de Novembro de 2012
  2. Hugo_Carvalho

    Hugo_Carvalho Power Member

    Podes usar a funçao date_parse, que te retorna um array com a hora, minutos... da função date (daquilo que lá puseres).

    Exemplo:
    Se quiseres ver o que é que o array contém, usa o print_r($array).
     
  3. yen

    yen

    Muito bem , mais uma nova (:

    $array = date_parse(date("H:i:s")); // array
    print_r($array);

    SCREEN:

    Array ( [year] => [month] => [day] => [hour] => 14 [minute] => 00 [second] => 55 [fraction] => 0 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => )

    Pois bem mais isto so se aplica ao meu $hour = date('h:i:s'); pelo que entendi ... e que é exagero fazer 24x um case ou 60 para os minutos hahaha : )
    mas se tiver que ser.. dedos a mexer ... xD

    ps:

    em que isto :
    $hour = $array['hour']; echo $hour;

    ira fazer o mesmo que:

    $hora = date('h')

    echo $hora;
     
    Última edição: 3 de Novembro de 2012
  4. Hugo_Carvalho

    Hugo_Carvalho Power Member

    Penso que não precisas de 24 ou 60 cases...
    Como são as tuas imagens? são so os digitos (0..9) ou têm todas as horas/minutos (e.g. 22, 23, 59, 60) ?

    Se estiveres a usar só digitos 0..9 como me parece, usas o digito que irá correspnder ao nome da imagem.
    Se for maior que 9, fazes um explode á hora/minuto (etc..) que retorna um array com cada digito do número. Por exemplo "21"h --> Array( [0]=>2 ; [1]=>1);
    E nesse caso metes duas imagens.

    Qualquer duvida diz.
     
    Última edição: 3 de Novembro de 2012
  5. barricas

    barricas Power Member

    Penso que seja isto que queres (só para as horas):

    PHP:
    <?php

    # Coloquei isto porque tinha uma hora a mais no script...
    date_default_timezone_set ('Europe/Lisbon');

    $hora date('H');

    if(
    intval($hora) > 9) {
        
    $dezenas substr($hora01);
        
    $unidades substr($hora12);

        echo 
    '<img src="imgdigital/'.$dezenas.'.gif" alt="'.$dezenas.'">';
        echo 
    '<img src="imgdigital/'.$unidades.'.gif" alt="'.$unidades.'">';
        
    } else {
        echo 
    '<img src="imgdigital'.$hora.'.gif" alt="'.$hora.'">';
    }
     
    Última edição: 5 de Novembro de 2012

Partilhar esta Página