Salve a tutti,
premesso che sono proprio novizio, dopo una settimana di varie ricerche sono riuscito a mettere insieme il seguente codice che ordina un array di tre campi in base alla data, eliminando le date più vecchie di quella odierna.
Il codice funziona, testato su una pagina "try editor", ma appena lo inserisco all'interno dell'HTML allora non fa più niente (è un po' sporchino perché sono remmate ancora alcune istruz di controllo), come se non lo interpretasse...
Credo sia perché non sia inserito al posto giusto, io l'ho messo all'interno degli <head>.
(già lette le indicazioni su come richiamare il codice)
Qualche consiglio?
Grazie
Qui il codicione:
<script type="text/javascript" language="JavaScript">
function lz(numero, cifre) {
n = String(numero);
while (n.length<cifre) {
n="0"+n
}
return n;
}
function dateFormat(data, formato) {
// (c) br1 - 2002
var giorni = new Array("Domenica","Lunedì","Martedì","Mercoledì","G iovedì","Venerdì","Sabato");
var mesi = new Array("Gennaio","Febbraio","marzo","Aprile","Maggi o","Giugno","Luglio","Agosto","Settembre","Ottobre ","Novembre","Dicembre");
// preparo la data... verificare di passarla corretta!
var adesso = new Date(data);
var anno = adesso.getFullYear();
var mese = adesso.getMonth()+1;
var giorno = adesso.getDate();
var settim = adesso.getDay()
var ore = adesso.getHours()
var minuti = adesso.getMinutes()
var secondi = adesso.getSeconds()
// preparo la stringa di risposta
var rVal = '';
if (formato.length==0) {
// assenza del secondo parametro
return String(adesso);
} else {
// inizio loop
while (formato.length>0) {
// verifico se c'e' qualche separatore e lo aggiungo
while (formato.length>0 && String("ymdphnst").indexOf(formato.charAt(0).toLow erCase())<0) {
rVal += formato.charAt(0);
formato = formato.substr(1);
}
// Separo il gruppo
if (formato.length>0) {
ff = formato.charAt(0);
formato = formato.substr(1);
while (formato.length>0 && formato.charAt(0).toLowerCase()==ff.charAt(0).toLo werCase()) {
ff += formato.charAt(0);
formato = formato.substr(1);
}
// espando il formato nella stringa corrispondente
ff = ff.toLowerCase(); // operazione preliminare... tutto in minuscolo
switch (ff) {
case "yy" :
rVal += String(anno).substr(2);
break;
case "yyyy" :
rVal += String(anno);
break;
case "m" :
rVal += String(mese);
break;
case "mm" :
rVal += lz(mese,2);
break;
case "mmm" :
rVal += mesi[mese-1].substr(0,3);
break;
case "mmmm" :
rVal += mesi[mese-1];
break;
case "d" :
rVal += String(giorno);
break;
case "dd" :
rVal += lz(giorno,2);
break;
case "ddd" :
rVal += giorni[settim].substr(0,3);
break;
case "dddd" :
rVal += giorni[settim];
break;
case "p" :
var inizio = new Date(anno, 0, 0);
rVal += Math.floor((adesso - inizio) / 86400000);
break;
case "ppp" :
var inizio = new Date(anno, 0, 0);
rVal += lz(Math.floor((adesso - inizio) / 86400000),3);
break;
case "h" :
rVal += String(ore);
break;
case "hh" :
rVal += lz(ore,2);
break;
case "n" :
rVal += String(minuti);
break;
case "nn" :
rVal += lz(minuti,2);
break;
case "s" :
rVal += String(secondi);
break;
case "ss" :
rVal += lz(secondi,2);
break;
case "t" :
rVal += lz(ore,2)+":"+lz(minuti,2)+":"+lz(secondi,2);
break;
default : // il numero dei caratteri del formato non e' permesso
rVal += ff.replace(/./gi,"?");
}
}
} // fine loop principale
return rVal;
}
}
x=0;
q=0;
var doggiymd;
var dnewsymd;
oggi = new Date();
var news = new Array();
news[0]=new Array("2010/04/12","www.linklinklink1.it/","Testotestotesto1");
news[1]=new Array("2010/05/25","www.linklinklink2.it/","Testotestotesto2");
news[2]=new Array("2010/05/21","www.linklinklink3.it/","Testotestotesto3");
news[3]=new Array("2012/12/23","www.linklinklink4.it/","Testotestotesto4");
news[4]=new Array("2010/04/24","www.linklinklink5.it/","Testotestotesto5");
news[4]=new Array("2010/06/12","www.linklinklink6.it/","Testotestotesto6");
news[4]=new Array("2010/03/21","www.linklinklink7.it/","Testotestotesto7");
news.sort();
doggiymd=dateFormat(oggi, 'yyyymmdd');
// document.write(doggiymd + "
");
while (q< news.length){
dnewsymd=dateFormat(news[q][0], 'yyyymmdd')
// document.write(dnewsymd + "
");
if (dnewsymd < doggiymd) {
news.shift()
}
q++;
}
news.sort().reverse();
var pausecontent2=new Array()
while (x< news.length){
pausecontent2[x]=("" + news[x][2] + "");
document.write(pausecontent2[x]);
// document.write("" + news[x][2] + "")
// document.write(news[x][0] + "
")
x++;
}
document.write(pausecontent2);
</script>

Rispondi quotando