Neben all den Antworten hier ist der De-facto-Standard in js Datum / Uhrzeit-Handhabung derzeit moment.js überrascht, dass niemand es hier erwähnte
Alonisser
2
@ alonisser - vielleicht, weil das Konvertieren eines Zeitwerts in ein Datum trivial ist. Das Formatieren ist auch nicht besonders schwierig.
RobG
Antworten:
125
Der Wert 1382086394000 ist wahrscheinlich ein Zeitwert, dh die Anzahl der Millisekunden seit 1970-01-01T00: 00: 00Z. Sie können damit ein ECMAScript-Datumsobjekt mit dem Datumskonstruktor erstellen :
var d = newDate(1382086394000);
Wie Sie das in etwas Lesbares umwandeln, liegt bei Ihnen. Durch einfaches Senden an die Ausgabe sollte die interne (und vollständig implementierungsabhängige) toString- Methode * aufgerufen werden, die normalerweise die entsprechende Systemzeit in einer für Menschen lesbaren Form druckt , z
Fri Oct 18201318:53:14 GMT+1000 (EST)
In ES5 gibt es einige andere integrierte Formatierungsoptionen:
und so weiter. Beachten Sie, dass die meisten von der Implementierung abhängig sind und in verschiedenen Browsern unterschiedlich sind. Wenn Sie in allen Browsern dasselbe Format wünschen, müssen Sie das Datum selbst formatieren, z.
* Das Format von Date.prototype.toString wurde in ECMAScript 2018 standardisiert . Es kann eine Weile dauern, bis es in allen Implementierungen allgegenwärtig ist, aber zumindest die gängigeren Browser unterstützen es jetzt.
Hier sind die einfachen Möglichkeiten für jede Verwirrung im Datumsformat:
für aktuelles Datum:
var current_date=newDate();
um den Zeitstempel des aktuellen Datums zu erhalten:
var timestamp=newDate().getTime();
So konvertieren Sie ein bestimmtes Datum in einen Zeitstempel:
var timestamp_formation=newDate('mm/dd/yyyy').getTime();
Zeitstempel in Datum umwandeln:
var timestamp=newDate('02/10/2016').getTime();
var todate=newDate(timestamp).getDate();
var tomonth=newDate(timestamp).getMonth()+1;
var toyear=newDate(timestamp).getFullYear();
var original_date=tomonth+'/'+todate+'/'+toyear;
OUTPUT:
02/10/2016
ja @melpomene, die Hälfte des Codes ist irrelevant, aber ich habe das geschrieben, um weitere Zweifel an der Datumsbildung auszuräumen .. !!! und noch etwas, das ich nicht von irgendwoher kopiert habe. Ich habe es in meinem eigenen Code versucht und vor 2 Tagen habe ich daran gearbeitet
Trojaner
1
Es spielt keine Rolle, ob Sie es buchstäblich kopiert haben oder nicht. Der Punkt ist, dass alle Informationen bereits in einer anderen Antwort vorhanden sind. Übrigens erzeugt Ihr letztes Beispiel nicht die Ausgabe, von der Sie behaupten, dass sie es tut.
Melpomene
Die angezeigte Ausgabe stimmt nicht mit der Code-Ausgabe überein (10.02.2016)
Suyash Mittal
9
Wir müssen neue Funktionen mit JavaScript erstellen.
Dies habe ich für die Instagram-API getan. konvertierte den Zeitstempel mit der Datumsmethode durch Multiplikation mit 1000. und fügte dann alle Entitäten einzeln hinzu, wie (Jahr, Monate usw.)
hat den benutzerdefinierten Monatslistennamen erstellt und mit der getMonth()Methode zugeordnet, die den Index des Monats zurückgibt.
Meine ES6-Variante erzeugt einen solchen String 2020-04-05_16:39:45.85725. Sie können die return-Anweisung jederzeit ändern, um das gewünschte Format zu erhalten:
const getDateStringServ = timestamp => {
const plus0 = num =>`0${num.toString()}`.slice(-2)
const d = newDate(timestamp)
const year = d.getFullYear()
const monthTmp = d.getMonth() + 1const month = plus0(monthTmp)
const date = plus0(d.getDate())
const hour = plus0(d.getHours())
const minute = plus0(d.getMinutes())
const second = plus0(d.getSeconds())
const rest = timestamp.toString().slice(-5)
return`${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}`
}
Antworten:
Der Wert 1382086394000 ist wahrscheinlich ein Zeitwert, dh die Anzahl der Millisekunden seit 1970-01-01T00: 00: 00Z. Sie können damit ein ECMAScript-Datumsobjekt mit dem Datumskonstruktor erstellen :
var d = new Date(1382086394000);
Wie Sie das in etwas Lesbares umwandeln, liegt bei Ihnen. Durch einfaches Senden an die Ausgabe sollte die interne
(und vollständig implementierungsabhängige)toString- Methode * aufgerufen werden, die normalerweise die entsprechende Systemzeit in einer für Menschen lesbaren Form druckt , zFri Oct 18 2013 18:53:14 GMT+1000 (EST)
In ES5 gibt es einige andere integrierte Formatierungsoptionen:
und so weiter. Beachten Sie, dass die meisten von der Implementierung abhängig sind und in verschiedenen Browsern unterschiedlich sind. Wenn Sie in allen Browsern dasselbe Format wünschen, müssen Sie das Datum selbst formatieren, z.
alert(d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear());
* Das Format von Date.prototype.toString wurde in ECMAScript 2018 standardisiert . Es kann eine Weile dauern, bis es in allen Implementierungen allgegenwärtig ist, aber zumindest die gängigeren Browser unterstützen es jetzt.
quelle
Das funktioniert gut. Im
chrome
Browser eingecheckt :var theDate = new Date(timeStamp_value * 1000); dateString = theDate.toGMTString(); alert(dateString );
quelle
1000
. Sonst wirst du in den zukünftigen Raum hyperloop !!warum nicht einfach
new Date (timestamp);
Ein Datum ist ein Datum, die Formatierung ist eine andere Sache.
quelle
Moment.js kann Unix-Zeitstempel in jedes benutzerdefinierte Format konvertieren
In diesem Fall :
var time = moment(1382086394000).format("DD-MM-YYYY h:mm:ss");
wird drucken
18-10-2013 11:53:14
;Hier ist ein Plunker , der dies demonstriert.
quelle
Hier sind die einfachen Möglichkeiten für jede Verwirrung im Datumsformat:
für aktuelles Datum:
var current_date=new Date();
um den Zeitstempel des aktuellen Datums zu erhalten:
var timestamp=new Date().getTime();
So konvertieren Sie ein bestimmtes Datum in einen Zeitstempel:
var timestamp_formation=new Date('mm/dd/yyyy').getTime();
Zeitstempel in Datum umwandeln:
var timestamp=new Date('02/10/2016').getTime(); var todate=new Date(timestamp).getDate(); var tomonth=new Date(timestamp).getMonth()+1; var toyear=new Date(timestamp).getFullYear(); var original_date=tomonth+'/'+todate+'/'+toyear; OUTPUT: 02/10/2016
quelle
Wir müssen neue Funktionen mit JavaScript erstellen.
function unixTime(unixtime) { var u = new Date(unixtime*1000); return u.getUTCFullYear() + '-' + ('0' + u.getUTCMonth()).slice(-2) + '-' + ('0' + u.getUTCDate()).slice(-2) + ' ' + ('0' + u.getUTCHours()).slice(-2) + ':' + ('0' + u.getUTCMinutes()).slice(-2) + ':' + ('0' + u.getUTCSeconds()).slice(-2) + '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) }; console.log(unixTime(1370001284)) 2016-04-30 08:36:26.000
quelle
formatDate
ist die Funktion, die Sie aufrufen und das Datum übergeben können, an das Sie formatieren möchtendd/mm/yyyy
var unformatedDate = new Date("2017-08-10 18:30:00"); $("#hello").append(formatDate(unformatedDate)); function formatDate(nowDate) { return nowDate.getDate() +"/"+ (nowDate.getMonth() + 1) + '/'+ nowDate.getFullYear(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="hello"> </div>
quelle
Dies habe ich für die Instagram-API getan. konvertierte den Zeitstempel mit der Datumsmethode durch Multiplikation mit 1000. und fügte dann alle Entitäten einzeln hinzu, wie (Jahr, Monate usw.)
hat den benutzerdefinierten Monatslistennamen erstellt und mit der
getMonth()
Methode zugeordnet, die den Index des Monats zurückgibt.convertStampDate(unixtimestamp){ // Unixtimestamp // Months array var months_arr = ['January','February','March','April','May','June','July','August','September','October','November','December']; // Convert timestamp to milliseconds var date = new Date(unixtimestamp*1000); // Year var year = date.getFullYear(); // Month var month = months_arr[date.getMonth()]; // Day var day = date.getDate(); // Hours var hours = date.getHours(); // Minutes var minutes = "0" + date.getMinutes(); // Seconds var seconds = "0" + date.getSeconds(); // Display date time in MM-dd-yyyy h:m:s format var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); // filtered fate var convdataTime = month+' '+day; return convdataTime; }
Aufruf mit Stempelargument
convertStampDate('1382086394000')
und das ist es.
quelle
Meine ES6-Variante erzeugt einen solchen String
2020-04-05_16:39:45.85725
. Sie können die return-Anweisung jederzeit ändern, um das gewünschte Format zu erhalten:const getDateStringServ = timestamp => { const plus0 = num => `0${num.toString()}`.slice(-2) const d = new Date(timestamp) const year = d.getFullYear() const monthTmp = d.getMonth() + 1 const month = plus0(monthTmp) const date = plus0(d.getDate()) const hour = plus0(d.getHours()) const minute = plus0(d.getMinutes()) const second = plus0(d.getSeconds()) const rest = timestamp.toString().slice(-5) return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}` }
quelle
Berechnung des Datums im Zeitstempel ab dem angegebenen Datum
// So erhalten Sie das Zeitstempeldatum vom normalen Datum : Im Format - 1560105000000
// Das Eingabedatum kann im Format "2019-06-09T18: 30: 00.000Z" vorliegen.
this.calculateDateInTimestamp = function (inputDate) { var date = new Date(inputDate); return date.getTime(); }
Ausgabe : 1560018600000
quelle