Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104

    cambio data con mezza giornata di ritardo

    Salve ho un problema che mi assilla da diverso tempo e non trovo soluzioni e sicuramente è una sciocchezza.

    uso questo codice nella mia Homepage e in particolare quello in neretto che mi serve per aprire determinati file in determinate giornate dell'anno, es: se oggi è il 56esimo giorno dell'anno aprimi il file pippo.js.
    Il problema è che immancabilmente il file viene aperto il giorno dopo a mezzogiorno, con mezza giornata di ritardo, dovè il problema??

    <script type="text/javascript" language="JavaScript">
    <!--
    today = new Date();
    start = new Date(today.getYear(),00,01);
    giorno_settimana = (today.getDay());
    giorno_anno = ((today.getTime()-start.getTime()) / 1000 / 60 / 60 / 24);
    now = new Date();
    giorno_mese = today.getDate();
    numero_mese = today.getMonth()+1;

    document.write('<form name=datigiorno>');
    document.write('<input type=hidden name=num_giorno_anno size=5 value='+Math.round(giorno_anno)+'>');
    document.write('<input type=hidden name=numerogiornosettimana size=5 value='+giorno_settimana+'>');
    document.write('<input type=hidden name=nome_giorno size=5 value='+today+'>');
    document.write('<input type=hidden name=data_giorno size=5 value='+giorno_mese+'>');
    document.write('<input type=hidden name=num_mese size=5 value='+numero_mese+'>');
    document.write('<input type=hidden name=giornomese size=5 value='+giorno_mese+'>');
    document.write('</form>');
    -->
    </SCRIPT>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Credo sia un problema di arrotondamento: Credo dovresti usare Math.floor, anziche` Math.round.

    Oppure prova aggiungendo questo (all'inizio):
    var today = new Date();
    today.setHour(0);
    today.setMinutes(0);
    today.setSeconds(0);
    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
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    Grazie della dritta Mich ma non ne funziona nemmeno una, se metto Math.floor....alle 14.30 del 3/02 mi carica il file del 02/02 cioè quello del giorno prima.

    Se aggiungo

    var today = new Date();
    today.setHour(0);
    today.setMinutes(0);
    today.setSeconds(0);

    all'inizio, logicamente togliendo

    today = new Date();

    non mi carica nemmeno un file, e già non carica solo uno ma tutti quelli che devono essere caricati a seconda dei giorni ore etcc..

    Se vuoi visiona la pagina cosi da farti un idea, mi auguro di risolverlo sto problema

    www.tatoosite.it/index.shtml

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non puoi usare document.write() con codice HTML dentro la head: quello script deve stare nel body.

    In alternativa deve stare in una funzione da chiamare dal body durante il caricamento della pagina.

    Nota che ci potrebbero essere conflitti tra tutti quegli script (usano variabili in comune): ti consiglio di provare in una pagina vuota.
    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
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    Arigrazie Mich ho spostato nel body lo script, faccio mea culpa sono alle prime armi e in quella pagina a furia di aggiungere dev'essermi scappato.

    Per il resto cosa puoi dirmi??

    A colpo d'occhio quali script potrebbero andare in conflitto nell'uso della stessa variabile??

    ti ringrazio.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A colpo d'occhio io riscriverei completamente gli script e anche la pagina: cosi` a prima vista direi che e` scritta in HTML2, mentre dovresti cercare di usare XHTML, eliminare le tabelle e basarti molto sui CSS.

    Tornando algi script, sono piuttosto caotici, ed in una pagina cosi` complessa il caos e` sinonimo di errori.

    Comunque la variabile today la usi in vari punti, e io ti ho consigliato di modificarla: non so poi cosa succede negli altri script.
    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
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    Mich ho cercato di fare un po' di pulizie togliendo script ripetitivi vedi inserimento data e anno in php.

    Ma il problema rimane eppure non dovrebbe il codice è giusto non capisco xchè vede le sei del mattino come se fosse mezzanotte, e di conseguenza carica i file non a mezzanotte ma alle sei del mattino.

    Sto impazzendo

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Sei ore di ritardo? non e` che crede di essere a NewYork?

    A parte gli scherzi, potrebbe essere un errore nella timezone ...

    Ho ridato un'occhiata alla pagina. C'e` piu` ordine.

    Pero` tutti quei tag script: potresti mettere tutte le funzioni dentro un unico tag (nota che e` piu` una questione estetica).

    Ma qui c'e` qualcosa che non va: da quando in un secondo ci sono 989 millisecondi?
    giorno_anno = ((today.getTime() -start.getTime()) / 989 / 60 / 60 / 24);

    Con un errore dell'ordine dell'1,1% in 3 mesi ti perdi un giorno, in un mese ti perdi quasi 8 ore.
    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
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    Ma qui c'e` qualcosa che non va: da quando in un secondo ci sono 989 millisecondi?
    giorno_anno = ((today.getTime() -start.getTime()) / 989 / 60 / 60 / 24);



    ehehehe hai ragione ma sai preso dallo sconforto le sto provando tutte e prove dietro prove ho notato che se gioco con i millesimidisecondi lo scarto delle ore in più diminuisce lo so che non è cosi che risolvo il problema, ma sinceramente non so più che pesci pigliare.

    Sto a

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Va be' lasciamo perdrere ....

    ma rimetti 1000!!!!

    Poi vediamo di analizzare questo codice:
    codice:
      today = new Date(); // giorno ed ora corrente
      start = new Date(today.getYear(),00,01); // ore 00:00 del 1.gennaio anno corrente
      giorno_settimana = (today.getDay());
      giorno_anno = Math.floor((today.getTime() -start.getTime()) / (1000 * 60 * 60 * 24) );
      alert ("giorno anno: "+giorno_anno);
      giorno_mese = today.getDate();
      numero_mese = today.getMonth()+1;
    Tutto il resto del codice non serve.

    Nota che ho trasformato tutte le divisioni in una sola (le moltiplicazioni sono piu` precise); ho inserito un Math.floor; ed ho aggiunto un alert, per vedere cosa succede dopo la divisione.

    Prova il tutto a diverse ore del giorno.

    Ma attento che l'orologio del sistema sia corretto: se e` settata sbaglaita la timezone, il conto puo` sballare.
    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.