Ciao a tutti, vi espongo brevemente il problema, devo calcolare la distanza da una DATA ad OGGI in ANNI, MESI, GIORNI.
NB non devo calcolare la differenza fra le date in modi diversi (anni,mesi,giorni),
il risultato giusto è del tipo 6 anni 12 mesi e 31 giorni.
ecco il mio codice:
codice:
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") function countup(yr,m,d){ var today=new Date() var todayy=today.getYear() if (todayy < 1000) todayy+=1900 var todaym=today.getMonth() var todayd=today.getDate() var todaystring=montharray[todaym]+" "+todayd+", "+todayy var paststring=montharray[m-1]+" "+d+", "+yr var difference=(Math.round((Date.parse(todaystring)-Date.parse(paststring))/(24*60*60*1000))*1) var anni = parseInt(difference/365) if (anni == 1){ anniT = anni + " anno " }else{ anniT = anni + " anni " } var mesi = parseInt((difference-(365*anni))/30) if (mesi == 1){ mesiT = mesi + " mese " }else{ mesiT = mesi + " mesi " } var giorni = (difference-(365*anni))-(mesi*30) if (giorni == 1){ giorniT = giorni + " giorno " }else{ giorniT = giorni + " giorni " } document.write("<h2 style=\"font-size:12px;font-weight:bold;\">Ci conosciamo da "+anniT+mesiT+giorniT+"</h2>") } //enter the count up date using the format year/month/day countup(2004,08,07)
il problema sorge nel dividere i mesi per 30, non tutti i mesi hanno 30 giorni e quindi il conto sballa.
Come posso fare per ottenere il risultato sperato tenendo conto degli anni bisestili, i mesi da 28,30,31 giorni?
Una birra a chi mi aiuta
grazie in anticipo ragazzi