Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26

    Data che si aggiorna da sola

    Ciao a tutti, vorrei inserire nel mio sito uno script che faccia comparire la data ma che si aggiorni automaticamente; credo che per questo bisognerà integrare il javascript, ma io non ho idea di come farlo, voi sapete dirmi qualcosa?

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    eccoti lo script

    giorno,mese,anno, orario completo sono TUTTI dati dal server, quindi nessun valore locale.

    in italiano ovviamente





    data.php
    Codice PHP:
    <?php
    $quel_giorno
    =getdate(time()-(86400*5));  // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore

    echo "<pre>";print_r($quel_giorno);echo "</pre>";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
      <title>data</title>
    <script>
    function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
      {
      var VecchiaData=new Date();

      VecchiaData.setDate(Giorno);
      VecchiaData.setMonth(Mese);
      VecchiaData.setFullYear(Anno);
      
      if (Ore != null )     VecchiaData.setHours(Ore);
      if (Minuti != null )  VecchiaData.setMinutes(Minuti);
      if (Secondi != null ) VecchiaData.setSeconds(Secondi);
      
      
      var GiornoSett=VecchiaData.getDay();
      var month=VecchiaData.getMonth()
      var Ora=VecchiaData.getHours();
      var Min=VecchiaData.getMinutes();
      var Sec=VecchiaData.getSeconds();
      var Mese=month;  
      
      if(Ora<=9) Ora="0"+Ora;
      if(Min<=9) Min="0"+Min;
      if(Sec<=9) Sec="0"+Sec;
      
      switch (GiornoSett) //converte il numero in nome del giorno
        { 
        case 0: //domenica
         GiornoSett = "Domenica";
         break;
        case 1: 
         GiornoSett = "Lunedi`";
         break;
        case 2:
         GiornoSett = "Martedi'";
         break;
        case 3:
         GiornoSett = "Mercoledi`";
         break;
        case 4:
         GiornoSett = "Giovedi`";
         break;
        case 5:
         GiornoSett = "Venerdi`";
         break;
        case 6: //sabato
         GiornoSett = "Sabato";
         break;
       }
       
       switch (Mese) { //converte in numero in nome del mese
        case 0:
         Mese = "Gennaio";
         break;
        case 1:
         Mese = "Febbraio";
         break;
        case 2:
         Mese = "Marzo";
         break;
        case 3:
         Mese = "Aprile";
         break;
        case 4:
         Mese = "Maggio";
         break;
        case 5:
         Mese = "Giugno";
         break;
        case 6:
         Mese = "Luglio";
         break;
        case 7:
         Mese = "Agosto";
         break;
        case 8:
         Mese = "Settembre";
         break;
        case 9:
         Mese = "Ottobre";
         break;
        case 10:
         Mese = "Novembre";
         break;
        case 11:
         Mese = "Dicembre";
         break;
       }


      document.getElementById('orologo_giorno_sett').innerHTML  =GiornoSett;
      document.getElementById('orologo_giorno').innerHTML       =VecchiaData.getDate();
      document.getElementById('orologo_mese').innerHTML         =Mese; 
      document.getElementById('orologo_anno').innerHTML         =VecchiaData.getFullYear();
      document.getElementById('orologo_ora').innerHTML          =Ora;
      document.getElementById('orologo_min').innerHTML          =Min; 
      document.getElementById('orologo_sec').innerHTML          =Sec;

      setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000);
      }
    </script>


      </head>
      <body onload="DateFrom(<?php echo $quel_giorno['mday'?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'?>)">

    <table width="300" border="1">
    <tr>
    <td width="50" id="orologo_giorno_sett"></td>
    <td width="50" id="orologo_giorno"></td>
    <td width="50" id="orologo_mese"></td>
    <td width="50" id="orologo_anno"></td>
    <td width="50" id="orologo_ora"></td>
    <td width="50" id="orologo_min"></td>
    <td width="50" id="orologo_sec"></td>
    </tr>
    </table>

      </body>
    </html>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da dottwatson
    eccoti lo script

    giorno,mese,anno, orario completo sono TUTTI dati dal server, quindi nessun valore locale.

    in italiano ovviamente





    data.php
    Codice PHP:
    <?php
    $quel_giorno
    =getdate(time()-(86400*5));  // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore

    echo "<pre>";print_r($quel_giorno);echo "</pre>";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
      <title>data</title>
    <script>
    function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
      {
      var VecchiaData=new Date();

      VecchiaData.setDate(Giorno);
      VecchiaData.setMonth(Mese);
      VecchiaData.setFullYear(Anno);
      
      if (Ore != null )     VecchiaData.setHours(Ore);
      if (Minuti != null )  VecchiaData.setMinutes(Minuti);
      if (Secondi != null ) VecchiaData.setSeconds(Secondi);
      
      
      var GiornoSett=VecchiaData.getDay();
      var month=VecchiaData.getMonth()
      var Ora=VecchiaData.getHours();
      var Min=VecchiaData.getMinutes();
      var Sec=VecchiaData.getSeconds();
      var Mese=month;  
      
      if(Ora<=9) Ora="0"+Ora;
      if(Min<=9) Min="0"+Min;
      if(Sec<=9) Sec="0"+Sec;
      
      switch (GiornoSett) //converte il numero in nome del giorno
        { 
        case 0: //domenica
         GiornoSett = "Domenica";
         break;
        case 1: 
         GiornoSett = "Lunedi`";
         break;
        case 2:
         GiornoSett = "Martedi'";
         break;
        case 3:
         GiornoSett = "Mercoledi`";
         break;
        case 4:
         GiornoSett = "Giovedi`";
         break;
        case 5:
         GiornoSett = "Venerdi`";
         break;
        case 6: //sabato
         GiornoSett = "Sabato";
         break;
       }
       
       switch (Mese) { //converte in numero in nome del mese
        case 0:
         Mese = "Gennaio";
         break;
        case 1:
         Mese = "Febbraio";
         break;
        case 2:
         Mese = "Marzo";
         break;
        case 3:
         Mese = "Aprile";
         break;
        case 4:
         Mese = "Maggio";
         break;
        case 5:
         Mese = "Giugno";
         break;
        case 6:
         Mese = "Luglio";
         break;
        case 7:
         Mese = "Agosto";
         break;
        case 8:
         Mese = "Settembre";
         break;
        case 9:
         Mese = "Ottobre";
         break;
        case 10:
         Mese = "Novembre";
         break;
        case 11:
         Mese = "Dicembre";
         break;
       }


      document.getElementById('orologo_giorno_sett').innerHTML  =GiornoSett;
      document.getElementById('orologo_giorno').innerHTML       =VecchiaData.getDate();
      document.getElementById('orologo_mese').innerHTML         =Mese; 
      document.getElementById('orologo_anno').innerHTML         =VecchiaData.getFullYear();
      document.getElementById('orologo_ora').innerHTML          =Ora;
      document.getElementById('orologo_min').innerHTML          =Min; 
      document.getElementById('orologo_sec').innerHTML          =Sec;

      setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000);
      }
    </script>


      </head>
      <body onload="DateFrom(<?php echo $quel_giorno['mday'?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'?>)">

    <table width="300" border="1">
    <tr>
    <td width="50" id="orologo_giorno_sett"></td>
    <td width="50" id="orologo_giorno"></td>
    <td width="50" id="orologo_mese"></td>
    <td width="50" id="orologo_anno"></td>
    <td width="50" id="orologo_ora"></td>
    <td width="50" id="orologo_min"></td>
    <td width="50" id="orologo_sec"></td>
    </tr>
    </table>

      </body>
    </html>
    urca quanto codice...

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    mica lo paghi al kilo...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da dottwatson
    mica lo paghi al kilo...
    va bè che discorsi, se per una data scrivi questo, chissa per una cosa più complessa.

    E poi tieni conto che comunque che un file più piccolo si compila in meno tempo sul server.

    però anzichè fare uno switch potevi mettere tutto in un array se proprio non vuoi usare strftime.

    permetti che questo:
    codice:
    switch (Mese) { //converte in numero in nome del mese
        case 0:
         Mese = "Gennaio";
         break;
        case 1:
         Mese = "Febbraio";
         break;
        case 2:
         Mese = "Marzo";
         break;
        case 3:
         Mese = "Aprile";
         break;
        case 4:
         Mese = "Maggio";
         break;
        case 5:
         Mese = "Giugno";
         break;
        case 6:
         Mese = "Luglio";
         break;
        case 7:
         Mese = "Agosto";
         break;
        case 8:
         Mese = "Settembre";
         break;
        case 9:
         Mese = "Ottobre";
         break;
        case 10:
         Mese = "Novembre";
         break;
        case 11:
         Mese = "Dicembre";
         break;
       }
    è diverso da questo:
    codice:
    $mesi = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
    echo $mesi[$mese];

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    Scusami gianiaz ma non ho capito il tuo intervento.

    Ok, lo script funziona benissimo anche se io avevo in mente solo l'ora senza la data, però bisogna togliere 2 cose:

    - '-(86400*5)' che c'è nella 2a linea perchè, non serve una data retrocessa di 5 giorni (questo l'avevo chiesto in un'altra discussione http://forum.html.it/forum/showthrea...readid=1183346)

    - 'echo "<pre>";print_r($quel_giorno);echo "</pre>";' perchè così non restituisce l'array con tutti i dati che servono.

    quindi alla fine è questo:

    Codice PHP:
    <?php 
    $quel_giorno
    =getdate(time());
    ?> 
    <html> 
      <head> 
      <title>data</title> 
    <script> 
    function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi) 
      { 
      var VecchiaData=new Date(); 

      VecchiaData.setDate(Giorno); 
      VecchiaData.setMonth(Mese); 
      VecchiaData.setFullYear(Anno); 
       
      if (Ore != null )     VecchiaData.setHours(Ore); 
      if (Minuti != null )  VecchiaData.setMinutes(Minuti); 
      if (Secondi != null ) VecchiaData.setSeconds(Secondi); 
       
       
      var GiornoSett=VecchiaData.getDay(); 
      var month=VecchiaData.getMonth() 
      var Ora=VecchiaData.getHours(); 
      var Min=VecchiaData.getMinutes(); 
      var Sec=VecchiaData.getSeconds(); 
      var Mese=month;   
       
      if(Ora<=9) Ora="0"+Ora; 
      if(Min<=9) Min="0"+Min; 
      if(Sec<=9) Sec="0"+Sec; 
       
      switch (GiornoSett) //converte il numero in nome del giorno 
        { 
        case 0: //domenica 
         GiornoSett = "Domenica"; 
         break; 
        case 1: 
         GiornoSett = "Lunedi`"; 
         break; 
        case 2: 
         GiornoSett = "Martedi'"; 
         break; 
        case 3: 
         GiornoSett = "Mercoledi`"; 
         break; 
        case 4: 
         GiornoSett = "Giovedi`"; 
         break; 
        case 5: 
         GiornoSett = "Venerdi`"; 
         break; 
        case 6: //sabato 
         GiornoSett = "Sabato"; 
         break; 
       } 
        
       switch (Mese) { //converte in numero in nome del mese 
        case 0: 
         Mese = "Gennaio"; 
         break; 
        case 1: 
         Mese = "Febbraio"; 
         break; 
        case 2: 
         Mese = "Marzo"; 
         break; 
        case 3: 
         Mese = "Aprile"; 
         break; 
        case 4: 
         Mese = "Maggio"; 
         break; 
        case 5: 
         Mese = "Giugno"; 
         break; 
        case 6: 
         Mese = "Luglio"; 
         break; 
        case 7: 
         Mese = "Agosto"; 
         break; 
        case 8: 
         Mese = "Settembre"; 
         break; 
        case 9: 
         Mese = "Ottobre"; 
         break; 
        case 10: 
         Mese = "Novembre"; 
         break; 
        case 11: 
         Mese = "Dicembre"; 
         break; 
       } 


      document.getElementById('orologo_giorno_sett').innerHTML  =GiornoSett; 
      document.getElementById('orologo_giorno').innerHTML       =VecchiaData.getDate(); 
      document.getElementById('orologo_mese').innerHTML         =Mese; 
      document.getElementById('orologo_anno').innerHTML         =VecchiaData.getFullYear(); 
      document.getElementById('orologo_ora').innerHTML          =Ora; 
      document.getElementById('orologo_min').innerHTML          =Min; 
      document.getElementById('orologo_sec').innerHTML          =Sec; 

      setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000); 
      } 
    </script> 


      </head> 
      <body onload="DateFrom(<?php echo $quel_giorno['mday'?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'?> )"> 

    <table width="300" border="1"> 
    <tr> 
    <td width="50" id="orologo_giorno_sett"></td> 
    <td width="50" id="orologo_giorno"></td> 
    <td width="50" id="orologo_mese"></td> 
    <td width="50" id="orologo_anno"></td> 
    <td width="50" id="orologo_ora"></td> 
    <td width="50" id="orologo_min"></td> 
    <td width="50" id="orologo_sec"></td> 
    </tr> 
    </table> 

      </body> 
    </html>
    Per chi invece vuole solo l'ora che si aggiorni questo:

    Codice PHP:
    <?php 
    $quel_giorno
    =getdate(time());
    ?> 
    <html> 
      <head> 
      <meta http-equiv="Content-Language" content="it">
      <title>data</title> 
    <script> 
    function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi) 
      { 
      var VecchiaData=new Date(); 

      VecchiaData.setDate(Giorno); 
       
      if (Ore != null )     VecchiaData.setHours(Ore); 
      if (Minuti != null )  VecchiaData.setMinutes(Minuti); 
      if (Secondi != null ) VecchiaData.setSeconds(Secondi); 
       
       

      var Ora=VecchiaData.getHours(); 
      var Min=VecchiaData.getMinutes(); 
      var Sec=VecchiaData.getSeconds(); 
       
      if(Ora<=9) Ora="0"+Ora; 
      if(Min<=9) Min="0"+Min; 
      if(Sec<=9) Sec="0"+Sec; 
       
      document.getElementById('orologo_ora').innerHTML          =Ora; 
      document.getElementById('orologo_min').innerHTML          =Min; 
      document.getElementById('orologo_sec').innerHTML          =Sec; 

      setTimeout("DateFrom(null,null,null)",1000); 
      } 
    </script> 


      <style type="text/css">
    .style1 {
        border-width: 0;
    }
    .style2 {
        text-align: center;
    }
    </style>


      </head> 
      <body onload="DateFrom(<?php echo $quel_giorno['mday'?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'?> )"> 

    <table class="style1"> 
    <tr> 
    <td id="orologo_ora" style="width: 15px"></td> 
    <td id="punto" style="width: 5px" class="style2">.</td> 
    <td id="orologo_min" style="width: 15px"></td> 
    <td id="punto" style="width: 5px" class="style2">.</td> 
    <td id="orologo_sec" style="width: 15px"></td> 
    </tr> 
    </table> 

      </body> 
    </html>
    Per chi vuole solo la data, come mi ha suggerito gianiaz:

    Codice PHP:
    <?php
    setlocale
    (LC_TIME,'it_IT');
    $oggi time();
    $quattrogiornifa $oggi - (4*86400);
    echo 
    ucfirst(strftime('%A, %e %B %Y'$quattrogiornifa));
    ?>
    Ringrazio tantissimo dottwatson per lo script che ha dato per risolvere il mio problema.

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    strftime può essere usato anche per l'ora...

    ciao

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da gianiaz
    va bè che discorsi, se per una data scrivi questo, chissa per una cosa più complessa.

    E poi tieni conto che comunque che un file più piccolo si compila in meno tempo sul server.

    però anzichè fare uno switch potevi mettere tutto in un array se proprio non vuoi usare strftime.

    permetti che questo:
    codice:
    switch (Mese) { //converte in numero in nome del mese
        case 0:
         Mese = "Gennaio";
         break;
        case 1:
         Mese = "Febbraio";
         break;
        case 2:
         Mese = "Marzo";
         break;
        case 3:
         Mese = "Aprile";
         break;
        case 4:
         Mese = "Maggio";
         break;
        case 5:
         Mese = "Giugno";
         break;
        case 6:
         Mese = "Luglio";
         break;
        case 7:
         Mese = "Agosto";
         break;
        case 8:
         Mese = "Settembre";
         break;
        case 9:
         Mese = "Ottobre";
         break;
        case 10:
         Mese = "Novembre";
         break;
        case 11:
         Mese = "Dicembre";
         break;
       }
    è diverso da questo:
    codice:
    $mesi = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
    echo $mesi[$mese];
    l' intervento di gianiaz è piu che opportuno in quanto lo script con un array è piu rapido nell' esecuzione, e anche sotto un profilo di programmazione è piu corretto. Ma il mio voleva essere solo un esempio e soprattutto era abbastanza chiaro da reinterpretare per capirne il funzionameto...

    tu in un post hai chiesto la data retrocessa e in un' altro l' ora con JS.

    con una cosa del genere avevi tutte e 2 e potevi utilizzarlo come meglio ti sembrava opportuno, senza fare modifiche sostanziali.. diciamo un cosa pressocchè standard
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    Originariamente inviato da dottwatson
    tu in un post hai chiesto la data retrocessa e in un' altro l' ora con JS.

    con una cosa del genere avevi tutte e 2 e potevi utilizzarlo come meglio ti sembrava opportuno, senza fare modifiche sostanziali.. diciamo un cosa pressocchè standard
    Ok, vanno benissimo gli script che mi avete dato, riguardo all'array di gianiaz si capisce a vista d'occhio che è più corto, solo che io non ho ben capito come sostituirlo al tuo switch senza che non funzioni più lo script

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?php
    $quel_giorno
    =getdate(time()-(86400*0));  // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore

    echo "<pre>";print_r($quel_giorno);echo "</pre>";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <title>data</title>
    <script>
    function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
      {
      var VecchiaData=new Date();

      var GiorniSettIT=['Domenica','Lunedi`','Martedi`','Mercoledi`','Giovedi`','Venerdi`','Sabato'];
      var Mesi=['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];

      VecchiaData.setFullYear(Anno,Mese,Giorno);  
      if (Ore != null )     VecchiaData.setHours(Ore);
      if (Minuti != null )  VecchiaData.setMinutes(Minuti);
      if (Secondi != null ) VecchiaData.setSeconds(Secondi);
      
      var Ora=VecchiaData.getHours();
      var Min=VecchiaData.getMinutes();
      var Sec=VecchiaData.getSeconds();

      
      if(Ora<=9) Ora="0"+Ora;
      if(Min<=9) Min="0"+Min;
      if(Sec<=9) Sec="0"+Sec;
         
      document.getElementById('orologo_giorno_sett').innerHTML  =GiorniSettIT[VecchiaData.getDay()];
      document.getElementById('orologo_giorno').innerHTML       =VecchiaData.getDate();
      document.getElementById('orologo_mese').innerHTML         =Mesi[VecchiaData.getMonth()];
      document.getElementById('orologo_anno').innerHTML         =VecchiaData.getFullYear();
      document.getElementById('orologo_ora').innerHTML          =Ora;
      document.getElementById('orologo_min').innerHTML          =Min;
      document.getElementById('orologo_sec').innerHTML          =Sec;

      setTimeout("DateFrom("+Giorno+","+VecchiaData.getMonth()+","+Anno+",null,null,null)",1000);
      }
    </script>


      </head>
      <body onload="DateFrom(<?php echo $quel_giorno['mday'?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'?> )">

    <table width="300" border="1">
    <tr>
    <td width="50" id="orologo_giorno_sett"></td>
    <td width="50" id="orologo_giorno"></td>
    <td width="50" id="orologo_mese"></td>
    <td width="50" id="orologo_anno"></td>
    <td width="50" id="orologo_ora"></td>
    <td width="50" id="orologo_min"></td>
    <td width="50" id="orologo_sec"></td>
    </tr>
    </table>

      </body>
    </html>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.