611 Stimmen

Javascript fügt führende Nullen zum Datum hinzu

Ich habe dieses Skript erstellt, um das Datum für 10 Tage im Voraus im Format tt/mm/jjjj zu berechnen:

var MyDate = new Date();
var MyDateString = new Date();
MyDate.setDate(MyDate.getDate()+10);
MyDateString = MyDate.getDate() + '/' + (MyDate.getMonth()+1) + '/' + MyDate.getFullYear();

Ich muss das Datum mit führenden Nullen in der Tages- und Monatskomponente anzeigen lassen, indem ich diese Regeln zum Skript hinzufüge. Ich kann nicht scheinen, um es zum Funktionieren zu bringen.

if (MyDate.getMonth < 10)getMonth = '0' + getMonth;

y

if (MyDate.getDate <10)get.Date = '0' + getDate;

Wenn mir jemand zeigen könnte, wo ich diese in das Skript einfügen kann, wäre ich sehr dankbar.

0voto

function pad(value) {
    return value.tostring().padstart(2, 0);
}

let d = new date();
console.log(d);
console.log(`${d.getfullyear()}-${pad(d.getmonth() + 1)}-${pad(d.getdate())}t${pad(d.gethours())}:${pad(d.getminutes())}:${pad(d.getseconds())}`);

0voto

Eine einfache Datumsformat Bibliothek hat mir das Leben gerettet ( GitHub ) :

  • Node.js: var dateFormat = require("dateformat");
  • ES6: import dateFormat from "dateformat";

    const now = new Date(); // consider 3rd of December 1993

    const full = dateFormat(today, "yyyy-mm-dd"); // 1993-12-03 const day = dateFormat(today, "dd"); // 03 const month = dateFormat(today, "mm"); // 12 const year = dateFormat(today, "yyyy"); // 1993

Es ist erwähnenswert, dass es eine breite Palette von Maskenoptionen unterstützt.

0voto

Deaner Punkte 1
 let date = new Date();
 let dd = date.getDate();//day of month

 let mm = date.getMonth();// month
 let yyyy = date.getFullYear();//day of week
 if (dd < 10) {//if less then 10 add a leading zero
     dd = "0" + dd;
   }
 if (mm < 10) {
    mm = "0" + mm;//if less then 10 add a leading zero
  }

0voto

Tim Vermaelen Punkte 6471

Im Folgenden soll die Konfiguration extrahiert, in Date.protoype und die Konfiguration anwenden.

Ich habe eine Array Zeitabschnitte zu speichern und wenn ich push() this als Date Objekt, gibt es mir die Länge für die Iteration zurück. Wenn ich fertig bin, kann ich mit join sur le return Wert.

Dies scheint ziemlich schnell zu funktionieren: 0,016ms

// Date protoype
Date.prototype.formatTime = function (options) {
    var i = 0,
        time = [],
        len = time.push(this.getHours(), this.getMinutes(), this.getSeconds());

    for (; i < len; i += 1) {
        var tick = time[i];
        time[i] = tick < 10 ? options.pad + tick : tick;
    }

    return time.join(options.separator);
};

// Setup output
var cfg = {
    fieldClock: "#fieldClock",
    options: {
        pad: "0",
        separator: ":",
        tick: 1000
    }
};

// Define functionality
function startTime() {
    var clock = $(cfg.fieldClock),
        now = new Date().formatTime(cfg.options);

    clock.val(now);
    setTimeout(startTime, cfg.options.tick);
}

// Run once
startTime();

Demo: http://jsfiddle.net/tive/U4MZ3/

0voto

TV-C-1-5 Punkte 677

Fügen Sie etwas Füllung hinzu, um eine führende Null - wo nötig - zu ermöglichen, und verketten Sie die Zeichenfolge mit dem Begrenzungszeichen Ihrer Wahl.

Number.prototype.padLeft = function(base,chr){
        var  len = (String(base || 10).length - String(this).length)+1;
        return len > 0? new Array(len).join(chr || '0')+this : this;
    }

var d = new Date(my_date);
var dformatted = [(d.getMonth()+1).padLeft(), d.getDate().padLeft(), d.getFullYear()].join('/');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X