Felix Riesterer: Variablenwert / Datumsformat konvertieren und neu ausgeben

Beitrag lesen

Lieber heinz k.,

angelehnt an die Funktion sprintf (wie z.B. bei PHP) habe ich mir folgende JS-Funktion gebaut/zusammengesucht:

function printPaddedNumbers () {  
    if (arguments.length < 2)  
        return arguments[0];  
  
    var i, c, s, d = arguments[0];  
  
    for (i = 1; i < arguments.length; i++) {  
        c = d.replace(/^.*?%(\d)(\d)d.*/, "$1,$2").split(",");  
        s = c[0].toString();  
  
        while (s.length < c[1])  
            s += c[0].toString();  
  
        s = s.substr(0, s.length - arguments[i].toString().length) + arguments[i].toString();  
        d = d.replace(new RegExp("%" + c[0] + c[1] + "d", ""), s)  
    }  
  
    return d;  
};

angenommen ein Benutzer gibt als Datum ein:
1.1.11
1.1.2011
01.01.11

sollen diese Eingaben richtig konvertiert werden zu:
TT.MM.JJJJ -> 01.01.2011

Dann benutzt Du obige Funktion mit folgendem Code:

var richtiges_datum = "";  
var user_datum = "1.1.11";  
var d = user_datum.split(".");  
  
d[2] = d[2] < 2000 ? 2000 + d[2] : d[2];  
  
richtiges_datum = printPaddedNumbers("%02d.%02d.%04d", d[0], d[1], d[2]);

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)