Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Data inesatta

  1. #1
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427

    Data inesatta

    codice:
    function test(data)
    {
    
    oggi = new Date(data) 
    oggistringa = oggi.toGMTString() 
    anno=oggistringa.substring(12,16); 
    mese=oggi.getMonth() + 1
    giorno= (oggi.getDay())
    
      
    var data_successiva =  giorno +"/"+mese+"/"+anno
    alert(data_successiva);
    }
    	</script>
    	
    	prova
    l'alert mi riporta 2/4/2006

    Quando dovrebbe essere 5/11/2006


  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Cosa vuoi fare di preciso ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    L'algoritmo da te scelto e' un tantinello lacunoso... e le notizie che fornisci incomplete

    1 - le date in javascript sono in formato standard americano: tu stai inviando come parametro l'undici aprile 2006, quindi ti aspetti di ottenere l'undici maggio? oppure parli di novembre?

    2 - ricavare dalla stringa l'anno non e' buona cosa... la sua posizione varia a seconda del numero di cifre esprimenti il giorno;

    3 - il mese in javascript va da 0 (gennaio) a 11 (dicembre) : il +1 che tu aggiungi rimette a posto le cose dal punto di vista della numerazione ma non, come sospetto tu intendessi fare, aggiunge un mese alla data... inoltre in quest'ultimo caso non risolve per i mesi di diversa lunghezza... passeresti dal 31 gennaio a...

    4 - vedo pero' che hai aggiunto uno al mese... e qui torniamo al punto 1?

    5 - il numero del giorno nel mese si ottiene con .getDate(), quello che hai usato restituisce il numero del giorno nella settimana.

    codice:
    <script>
    function test(data)
    {
    // questo per il formato mm/dd/yyyy
    oggi = new Date(data) 
    // se il formato e' gg/mm/aaaa commenta la linea precedente e togli il commento alle due seguenti
    // pippo = data.split("/")
    // oggi = new Date(pippo[2], pippo[1]-1, pippo[0]) 
    
    // aggiungo un mese
    domani = new Date(oggi.setMonth(oggi.getMonth()+1))
    // se invece vuoi aggiungere un giorno commenta la linea precedente e togli il commento alla linea seguente
    // domani = new Date(oggi.setDate(oggi.getDate()+1))
    
    anno = domani.getFullYear();
    mese = domani.getMonth() +1;
    giorno = domani.getDate();
    
    var data_successiva =  "" + giorno + "/" + mese + "/" + anno
    alert(data_successiva);
    }
    </script>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    it works...

    Grazie mille BR1.

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.