Ich versuche, JS zu verwenden, um eine date object
in eine Zeichenkette in YYYYMMDD
Format. Gibt es einen einfacheren Weg als die Verkettung von Date.getYear()
, Date.getMonth()
y Date.getDay()
?
Antworten
Zu viele Anzeigen?Eine kleine Abwandlung für die akzeptierte Antwort:
function getDate_yyyymmdd() {
const date = new Date();
const yyyy = date.getFullYear();
const mm = String(date.getMonth() + 1).padStart(2,'0');
const dd = String(date.getDate()).padStart(2,'0');
return `${yyyy}${mm}${dd}`
}
console.log(getDate_yyyymmdd())
Ausgehend von der Antwort von @o-o erhalten Sie so die Zeichenkette des Datums entsprechend einer Formatzeichenkette zurück. Sie können leicht eine zweistellige Jahr Regex für das Jahr & Millisekunden und dergleichen hinzufügen, wenn Sie sie benötigen.
Date.prototype.getFromFormat = function(format) {
var yyyy = this.getFullYear().toString();
format = format.replace(/yyyy/g, yyyy)
var mm = (this.getMonth()+1).toString();
format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
var dd = this.getDate().toString();
format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
var hh = this.getHours().toString();
format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
var ii = this.getMinutes().toString();
format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
var ss = this.getSeconds().toString();
format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
return format;
};
d = new Date();
var date = d.getFromFormat('yyyy-mm-dd hh:ii:ss');
alert(date);
Ich weiß nicht, wie effizient das ist jedoch, vor allem perf wise, weil es eine Menge von Regex verwendet. Es könnte wahrscheinlich einige Arbeit verwenden, die ich nicht reine js beherrschen.
NB: Ich habe die vordefinierte Klassendefinition beibehalten, aber vielleicht möchten Sie diese in eine Funktion oder eine benutzerdefinierte Klasse gemäß den Best Practices einfügen.
Dieser Typ hier => http://blog.stevenlevithan.com/archives/date-time-format schrieb eine format()
Funktion für die Javascript's Date
Objekt, so dass es mit den bekannten literalen Formaten verwendet werden kann.
Wenn Sie eine vollwertige Datumsformatierung im Javascript Ihrer Anwendung benötigen, verwenden Sie es. Andernfalls, wenn das, was Sie tun wollen, ist eine einmalige, dann Verkettung getYear(), getMonth(), getDay() ist wahrscheinlich am einfachsten.
Etwas vereinfachte Version für die beliebteste Antwort in diesem Thread https://stackoverflow.com/a/3067896/5437379 :
function toYYYYMMDD(d) {
var yyyy = d.getFullYear().toString();
var mm = (d.getMonth() + 101).toString().slice(-2);
var dd = (d.getDate() + 100).toString().slice(-2);
return yyyy + mm + dd;
}