Tutto e solo questo:
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;
}
}