Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443

    getDay dopo addizione giorni

    Desidero ricavare il nome del giorno dopo aver aggiunto 6 giorni ad una data, ma mi viene restituito Lun invece di Sab.

    var giorno: Sab, 14.03.2009
    var giorno + 6 giorni: Lun, 21.04.2009

    var giorno = "Sab, 14.03.2009";
    var month = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
    var day = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31");
    var weekday = new Array("Dom","Lun","Mar","Mer","Gio","Ven","Sab");
    var d = new Date(giorno.substr((giorno.length-4),4), giorno.substr((giorno.length-7),2), giorno.substr((giorno.length-10),2));
    d.setDate(d.getDate()+6);
    document.write("
    var giorno: "+giorno);
    document.write("
    var giorno + 6 giorni: "+ weekday[d.getDay()]+", "+day[d.getDate()]+"."+month[d.getMonth()]+"."+d.getYear());

    Dove sbaglio ?

  2. #2
    ah non credo che puoi usare così il setDate...

    Ma il calcolo di d è giusto?
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie,

    così funziona ...

    function formatNum(num){
    var mynum = num * 1;
    var retVal = mynum<10?'0':'';
    return (retVal + mynum)
    }

    var giorno = "Sab, 07.03.2009";
    //var month = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
    //var day = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31");
    var weekday = new Array("Dom","Lun","Mar","Mer","Gio","Ven","Sab");
    var d = new Date(giorno.substr((giorno.length-4),4), (parseInt(giorno.substr((giorno.length-7),2),10)-1), parseInt(giorno.substr((giorno.length-10),2),10));
    d.setDate(d.getDate()+7);
    document.write("
    var giorno: "+giorno);
    document.write("
    var d: "+d);
    document.write("
    var giorno + 7 giorni: "+weekday[d.getDay()]+", "+ formatNum(d.getDate()) +"."+ formatNum((d.getMonth()+1)) +"."+d.getYear());
    ma non capisco come mai che per la var d devo togliere un mese e per scrivere la data con l'aggiunta dei 7 giorni devo aggiungere un mese ...

    Probabilmente sbaglio ancora da qualche parte, ma non riesco a trovare il punto debole ....

  4. #4
    perché i mesi vanno da 0 a 11, non da 1 a 12, questo perché Date() ricalca l'ononimo oggetto di Java che usa questo tipo di notazione per tener traccia della data.
    I DON'T Double Click!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie

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.