546 Stimmen

Get String in YYYYMMDD Format von JS Datum Objekt?

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() ?

2voto

Kristian K Punkte 354

Viele Antworten hier verwenden die Funktion toisostring. Diese Funktion wandelt die Zeit vor der Ausgabe in Zulu-Zeit um, was zu Problemen führen kann.

function datestring(time) {
    return new Date(time.getTime() - time.getTimezoneOffset()*60000).toISOString().slice(0,10).replace(/-/g,"")
}

mydate = new Date("2018-05-03")
console.log(datestring(mydate))

Die Funktion datestring behebt das Problem der Zeitzonen, oder noch besser, Sie können das ganze Problem vermeiden, indem Sie in Zulu-Zeit arbeiten:

mydate = new Date("2018-05-03Z")
// mydate = new Date(Date.UTC(2018,5,3))
console.log(mydate.toISOString().slice(0,10).replace(/-/g,""))

2voto

sarin Punkte 4901

Wenn Sie AngularJs (bis 1.5) verwenden, können Sie die Datumsfilter :

var formattedDate = $filter('date')(myDate, 'yyyyMMdd')

2voto

Enam Punkte 29
yyyymmdd=x=>(f=x=>(x<10&&'0')+x,x.getFullYear()+f(x.getMonth()+1)+f(x.getDate()));
alert(yyyymmdd(new Date));

2voto

Kodie Grantham Punkte 1858

Datum-Kurzcode zur Rettung!

const dateShortcode = require('date-shortcode')
dateShortcode.parse('{YYYYMMDD}', new Date())
//=> '20180304'

1voto

chriskelly Punkte 6944

Hier ist ein allgemeinerer Ansatz, der beides ermöglicht Datum y Zeit Komponenten und ist entweder als Zahl oder als Zeichenkette identisch sortierbar.

Basierend auf der Zahlenreihenfolge des Date-ISO-Formats in eine lokale Zeitzone konvertieren und nicht vorhandene Ziffern entfernen, d.h.:

// monkey patch version
Date.prototype.IsoNum = function (n) {
    var tzoffset = this.getTimezoneOffset() * 60000; //offset in milliseconds
    var localISOTime = (new Date(this - tzoffset)).toISOString().slice(0,-1);
    return localISOTime.replace(/[-T:\.Z]/g, '').substring(0,n || 20); // YYYYMMDD
}

Verwendung

var d = new Date();
// Tue Jul 28 2015 15:02:53 GMT+0200 (W. Europe Daylight Time)
console.log(d.IsoNum(8));  // "20150728"
console.log(d.IsoNum(12)); // "201507281502"
console.log(d.IsoNum());   // "20150728150253272"

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