Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di andy_s
    Registrato dal
    Apr 2000
    Messaggi
    345

    modificare codice in funzione?

    Ciao
    ho trovato questo che mi fa vedere la data e l'ora
    come desideravo, ossia senza l'aggiornamento dei secondi

    posso però racchiudere la cosa in una funzione, in modo che nel
    body richiamo solo la funzione senza mettere tutto il codice


    <html>
    <body>
    <script language="JavaScript">

    <!-- inizio
    data = new Date();
    ora =data.getHours();
    minuti=data.getMinutes();
    secondi=data.getSeconds();
    giorno = data.getDay();
    mese = data.getMonth();
    date= data.getDate();
    year= data.getYear();
    if(minuti< 10)minuti="0"+minuti;
    if(secondi< 10)secondi="0"+secondi;
    if(year<1900)year=year+1900;
    if(ora<10)ora="0"+ora;
    if(giorno == 0) giorno = " Domenica ";
    if(giorno == 1) giorno = " Luned\ì ";
    if(giorno == 2) giorno = " Marted\ì ";
    if(giorno == 3) giorno = " Mercoled\ì ";
    if(giorno == 4) giorno = " Gioved\ì ";
    if(giorno == 5) giorno = " Venerd\ì ";
    if(giorno == 6) giorno = " Sabato ";
    if(mese == 0) mese = "Gennaio ";
    if(mese ==1) mese = "Febbraio ";
    if(mese ==2) mese = "Marzo ";
    if(mese ==3) mese = "Aprile ";
    if(mese ==4) mese = "Maggio ";
    if(mese ==5) mese = "Giugno ";
    if(mese ==6) mese = "Luglio ";
    if(mese ==7) mese = "Agosto ";
    if(mese ==8) mese = "Settembre ";
    if(mese ==9) mese = "Ottobre ";
    if(mese ==10) mese = "Novembre ";
    if(mese ==11) mese = "Dicembre";
    document.write("<font face='Arial' size='2'>");
    document.write(giorno+" "+date+" "+mese+" "+year+" ore "+ora+":"+minuti+":"+secondi);
    document.write("</font>")
    // fine -->
    </script>
    </body>
    </html>


    ***********
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Beh, non mi sembra un bell'esempio da copiare: e` un po' naive come programmazione.

    In JS esistono anche le matrici.

    Ecco una funzione che scrive dentro uno span:
    codice:
    var giorni = new Array(" Domenica ", " Luned\ì ", ...);
    var mesi = new Array("Gennaio ", "Febbraio ", ...);
    function inser_data() {
      var data = new Date();
      var ora =data.getHours();
      var minuti=data.getMinutes();
      var secondi=data.getSeconds();
      var giorno = data.getDay();
      var mese = data.getMonth();
      var date= data.getDate();
      var year= data.getFullYear();
    
      if(minuti< 10) minuti="0"+minuti;
      if(secondi< 10) secondi="0"+secondi;
      if(ora<10) ora="0"+ora;
      var str = giorni[giorno]+" "+date+" "+mesi[mese]+" ";
      str += year+" ore "+ora+":"+minuti+":"+secondi;
    
      document.getElementById('dataora').innerHTML = str;
    }
    Nel codice HTML, dove vuoi che compaia la data:
    <span id="dataora" style="font-family: Arial,sans-serif; font-size:2;">&amp;nbsp;</span>

    La funzione puoi chiamarla con:
    <body onload="inser_data();">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di andy_s
    Registrato dal
    Apr 2000
    Messaggi
    345
    forse era un pi naif, ma funzionava come volevo io
    la tua invece mi da errore alla riga 31
    io ho aggiunto i giorni e i mesi... solo questo
    ti posto il codice
    ****

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script language="JavaScript" type="text/JavaScript">
    var giorni = new Array(" Domenica ", " Luned\ì ", " Marted\ì "," Mercoled\ì "," Gioved\ì "," Venerd\ì "," Sabato ");
    var mesi = new Array("Gennaio ", "Febbraio ", "Marzo ","Aprile ","Maggio ","Giugno ","Luglio ","Agosto ","Settembre ","Ottobre ","Novembre ","Dicembre ",);
    function inser_data() {
    var data = new Date();
    var ora =data.getHours();
    var minuti=data.getMinutes();
    var secondi=data.getSeconds();
    var giorno = data.getDay();
    var mese = data.getMonth();
    var date= data.getDate();
    var year= data.getFullYear();

    if(minuti< 10) minuti="0"+minuti;
    if(secondi< 10) secondi="0"+secondi;
    if(ora<10) ora="0"+ora;
    var str = giorni[giorno]+" "+date+" "+mesi[mese]+" ";
    str += year+" ore "+ora+":"+minuti+":"+secondi;

    document.getElementById('dataora').innerHTML = str;
    }
    </script>
    </head>

    <body onload="inser_data();">

    <span id="dataora" style="font-family: Arial,sans-serif; font-size:2;"></span>
    </body>
    </html>
    ****
    mi dice perchè?

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La riga 31 e` questa?
    <span id="dataora" style="font-family: Arial,sans-serif; font-size:2;"></span>

    Manca in effetti l'unita` di misura del font nel CSS. Prova a scrivere
    font-size:2pt;

    Oppure togli tutto il CSS.

    Se ancora da` problemi dovresti anche dire con che browser lo stai testando.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di andy_s
    Registrato dal
    Apr 2000
    Messaggi
    345
    la riga era
    <body onload="inser_data();">

    però modificando come hai detto FUNZIONA

    Funziona con IE, con mozilla
    non funziona con netscape e Opera

    si riesce a fare qualche cosa?

    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dovresti spiegare meglio il tuo "non funziona". Significa che da` risultati sballati? che non fa nulla?

    Comunque la proprieta` .innerHTML non e` supportata da tutti.
    In alternativa si puo` scrivere dentro un campo di testo (eventualmente modificandone le caratteristiche di visualizzazione):
    document.getElementById('ID_CAMPO').value = str;

    In Netscape (N7+) comunque mi risulta che funzioni (a meno che non intendi NN4).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di andy_s
    Registrato dal
    Apr 2000
    Messaggi
    345
    hai ragione era troppo vago
    - in nn4 e Opera non si vede nulla
    mentre ie e mozilla si vede

    pero la modifica che hai scritto tu non mi è chiara

    dovrei sostituire la riga
    document.getElementById('dataora').innerHTML = str;
    con questa
    document.getElementById('ID_CAMPO').value = str;

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Esatto.

    NN4 non riconosce ne` getElementById, e neppure .innerHTML

    IE 5 usa .innerText al posto di .innerHTML

    Opera non lo so.

    Comunque se vuoi la compatibilita` all'indietro (fino NN3) usa:
    document.NOMEFORM.NOMECAMPO.value = str;

    In questo modo perdi la compatibilta` con XHTML Strict, ma forse non ti interessa troppo.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di andy_s
    Registrato dal
    Apr 2000
    Messaggi
    345
    -document.NOMEFORM.NOMECAMPO.value = str; -
    mai io non uso nessun Form

    -In questo modo perdi la compatibilta` con XHTML Strict-
    cioè?

    tagliamo la testa al toro
    tu cosa mi consigli di fare?

    ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Devi decidere se vuoi la compatibilita` con NN4 oppure se vuoi che la tua pagina venga utilizzata anche tra qualche anno.

    Se ho capito giusto vuoi la compatibilta` all'indietro: allora la soluzione e` usare un campo di un form (puoi anche fare un form apposta per poter scrivere in quel campo).
    Poi con i CSS puoi cambiare l'aspetto del campo e fare in modo che assomigli a testo normale (pero` con browser vecchi vedrai sempre il campo: tale CSS non ha effetti).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.