Ich habe ein Datum mit dem Format Sun May 11,2014
. Wie kann ich es 2014-05-11
mit JavaScript konvertieren ?
function taskDate(dateMilli) {
var d = (new Date(dateMilli) + '').split(' ');
d[2] = d[2] + ',';
return [d[0], d[1], d[2], d[3]].join(' ');
}
var datemilli = Date.parse('Sun May 11,2014');
console.log(taskDate(datemilli));
Der obige Code gibt mir das gleiche Datumsformat sun may 11,2014
. Wie kann ich das beheben?
javascript
date
formatting
date-format
time-format
user3625547
quelle
quelle
Antworten:
Du kannst tun:
Anwendungsbeispiel:
Ausgabe:
Demo auf JSFiddle: http://jsfiddle.net/abdulrauf6182012/2Frm3/
quelle
'use strict';
@ BhspencerNutzen Sie einfach die integrierte
toISOString
Methode, mit der Ihr Datum in das ISO 8601-Format gebracht wird:Wo yourDate Ihr Datumsobjekt ist.
Bearbeiten: Ein Typ hat dies geschrieben, um die Zeitzone in den Kommentaren zu behandeln:
quelle
new Date(yourDateStr).toISOString().split('T')[0]
const offset = yourDate.getTimezoneOffset(); yourDate = new Date(yourDate.getTime() + (offset*60*1000)); yourDate.toISOString().split('T')[0]
Dies sollte das Problem der Zeitzone lösennow.toISOString().substring(0,10);
Dies ist eine sauberere Alternative, da es Sie daran erinnert, dassYYYY-MM-DD
die ersten zehn Zeichen des vollständigen+ (offset
in a- (offset
)Ich benutze diesen Weg, um das Datum im Format JJJJ-MM-TT zu erhalten :)
quelle
var todayDate = new Date(2018, 3 - 1, 26); todayDate.toISOString().slice(0, 10);
gibt mir"2018-03-25"
. Auf einem anderen Systemvar todayDate = new Date(2018, 3 - 1, 26, 17, 0, 0); todayDate.toISOString().slice(0, 10);
gibt mir"2018-03-27"
.Der einfachste Weg, um Ihr Datum in das Format JJJJ-MM-TT zu konvertieren, ist folgender:
Wie es funktioniert:
new Date("Sun May 11,2014")
konvertiert die Zeichenfolge"Sun May 11,2014"
in ein Datumsobjekt, das die ZeitSun May 11 2014 00:00:00
in einer Zeitzone basierend auf dem aktuellen Gebietsschema darstellt (Host-Systemeinstellungen)new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
konvertiert Ihr Datum in ein Datumsobjekt, das der ZeitSun May 11 2014 00:00:00
in UTC (Standardzeit) entspricht, indem der Zeitzonenversatz subtrahiert wird.toISOString()
konvertiert das Datumsobjekt in eine ISO 8601-Zeichenfolge2014-05-11T00:00:00.000Z
.split("T")
teilt die Zeichenfolge in ein Array auf["2014-05-11", "00:00:00.000Z"]
[0]
nimmt das erste Element dieses ArraysDemo
quelle
- (date.getTimezoneOffset() * 60000 )
Bit sollte alle Zeitzonenunterschiede beseitigen, einschließlich der Auswirkungen der Sommerzeit.Ergebnis:
quelle
eval
.return ((v.length > 1 ? "0" : "") + z[v.slice(-1)]).slice(-2);
Eine Kombination einiger Antworten:
quelle
toISOString()
die potenziellen Zeitzonen-Fallstricke bei der Verwendung dieser Funktion.Wenn Sie nichts gegen die Verwendung von Bibliotheken haben, können Sie einfach die Moments.js- Bibliothek wie folgt verwenden:
quelle
Verwenden Sie einfach dies:
Einfach und süß;)
quelle
toISOString()
Es wird davon ausgegangen, dass Ihr Datum Ortszeit ist, und es wird in UTC konvertiert. Sie erhalten eine falsche Datumszeichenfolge.Die folgende Methode sollte das zurückgeben, was Sie benötigen.
Quelle: https://blog.justin.kelly.org.au/simple-javascript-function-to-format-the-date-as-yyyy-mm-dd/
quelle
Rufen Sie Jahr, Monat und Tag ab und fügen Sie sie dann zusammen. Gerade, einfach und genau.
quelle
Sie können
toLocaleDateString('fr-CA')
aufDate
Objekt verwendenAußerdem habe ich herausgefunden, dass diese Gebietsschemas das richtige Ergebnis aus dieser Gebietsschemaliste liefern. Liste aller Gebietsschemas und ihrer Funktionscodes?
Code-Snippet anzeigen
quelle
Um auch die Zeitzone zu berücksichtigen, sollte dieser Einzeiler ohne Bibliothek gut sein:
quelle
Sie können dies versuchen: https://www.npmjs.com/package/timesolver
Verwenden Sie es in Ihrem Code:
Mit dieser Methode können Sie die Datumszeichenfolge abrufen:
quelle
Keine dieser Antworten hat mich ganz zufrieden gestellt. Ich wollte eine plattformübergreifende Lösung, die mir den Tag in der lokalen Zeitzone ohne Verwendung externer Bibliotheken ermöglicht.
Das habe ich mir ausgedacht:
Das sollte den Tag des Datums im Format JJJJ-MM-TT in der Zeitzone zurückgeben, auf die sich das Datum bezieht.
So wird zum Beispiel
localDay(new Date("2017-08-24T03:29:22.099Z"))
zurückkehren"2017-08-23"
, obwohl es bereits der 24. bei UTC ist.Sie müssen POLYfill Date.prototype.toISOString für sie arbeiten in Internet Explorer 8, aber es sollte überall unterstützt werden.
quelle
Ich schlage vor, so etwas wie formatDate-js zu verwenden, anstatt jedes Mal zu versuchen, es zu replizieren. Verwenden Sie einfach eine Bibliothek, die alle wichtigen Strftime-Aktionen unterstützt.
quelle
oder
Versuche dies!
quelle
Hier ist eine Möglichkeit, dies zu tun:
quelle
Date.js ist dafür großartig.
quelle
quelle
quelle
quelle
Einige der vorherigen Antworten waren in Ordnung, aber nicht sehr flexibel. Ich wollte etwas, das wirklich mehr Randfälle bewältigen kann, also nahm ich die Antwort von @orangleliu und erweiterte sie. https://jsfiddle.net/8904cmLd/1/
Anwendungsbeispiel:
quelle
Dies hat bei mir funktioniert, um das aktuelle Datum im gewünschten Format zu erhalten (JJJJMMTT HH: MM: SS):
quelle
Es wird keine Bibliothek benötigt
Nur reines JavaScript.
Das folgende Beispiel zeigt die letzten zwei Monate ab heute:
quelle
PHP-kompatibles Datumsformat
Hier ist eine kleine Funktion, die dieselben Parameter wie die PHP-Funktion verwenden
date()
und eine Datums- / Zeitzeichenfolge in JavaScript zurückgeben kann.Beachten Sie, dass nicht alle Datums () -Formatoptionen von PHP unterstützt werden. Sie können das
parts
Objekt erweitern, um das fehlende Format-Token zu erstellenKern
Hier ist eine Übersicht mit einer aktualisierten Version der
formatDate()
Funktion und zusätzlichen Beispielen: https://gist.github.com/stracker-phil/c7b68ea0b1d5bbb97af0a6a3dc66e0d9quelle
Noch eine Kombination der Antworten. Gut lesbar, aber etwas langwierig.
quelle
Wenn das Datum in allen Zeitzonen gleich sein muss, z. B. einen Wert aus der Datenbank darstellt, müssen Sie UTC-Versionen der Funktionen Tag, Monat und Jahr für das JavaScript-Datumsobjekt verwenden, da diese in UTC-Zeit und angezeigt werden Vermeiden Sie Fehler nacheinander in bestimmten Zeitzonen.
Verwenden Sie für diese Art der Formatierung noch besser die Datumsbibliothek Moment.js .
quelle
Ich habe die Antwort von Samit Satpute wie folgt geändert :
quelle
Formatieren und Finden des maximalen und minimalen Datums aus Hashmap-Daten:
quelle
Das Neuformatieren einer Datumszeichenfolge ist ziemlich einfach, z
quelle