Ihr unmittelbares Problem ist, dass:
monthPrinter = "0" + monthPrinter;
monthPrinter = monthPrinter + 1;
in der falschen Reihenfolge ist. Wenn Sie zwei numerische Werte hinzufügen, erhalten Sie eine Zahl. Wenn Sie eine Zeichenfolge und eine Zahl (oder eine andere Zeichenfolge) hinzufügen, erhalten Sie eine Zeichenfolge. Also, was in Ihrem Fall passiert ist:
monthPrinter = "0" + monthPrinter; // S + I -> S ("08")
monthPrinter = monthPrinter + 1; // S + I -> S ("081")
Wenn Sie die Reihenfolge zu ändern, werden Sie etwas besser:
monthPrinter = monthPrinter + 1; // I + I -> I (9)
monthPrinter = "0" + monthPrinter; // S + I -> S ("09")
Zusätzlich Ihr Tag Polsterung wird nicht funktionieren wie erwartet, da Sie überprüfen datePrinter
, die Funktion, anstatt dayPrinter
, die Variable.
Und als beiseite, Erstellen von Funktionen ein Datum in das Dokument zu drucken, ist ein sehr spezifischer Anwendungsfall. Sie würden viel besser mit der Flexibilität einer allgemeineren Funktion sein nur zu formatieren, um die Zeichenfolge, die Sie wollen, dann könnte man es in vielen anderen Situationen wiederverwenden:
function dateAsDdMmYyyy(dt) {
var mm = dt.getMonth() + 1;
var dd = dt.getDate();
var yyyy = dt.getFullYear();
if (mm < 10) { mm = "0" + mm; }
if (dd < 10) { dd = "0" + dd; }
return mm + "/" + dd + "/" + yyyy;
}
var sep5_88 = new Date("September 5, 1998 08:45:00");
document.write(dateAsDdMmYyyy(sep5_88));
Ändern Sie 'monthPrinter =" 0 "+ monthPrinter; monthPrinter = MonatDrucker + 1; 'bis' MonatDrucker = "0" + (MonatDrucker + 1); '. Wenn Sie Zeichenfolge "0" einer Nummer voranstellen, wird es ** String **. Wenn Sie dann '1' hinzufügen, wird" 1 "mit ihm verkettet. – Tushar
Anderes Problem ist, dass Sie 'datePrinter' in der zweiten' if' Bedingung anstelle von 'dayPrinter' verwenden. [** Demo **] (https://jsfiddle.net/tusharj/r3fme8bn/) – Tushar
ja, es hat funktioniert! danke –