1636 Stimmen

Konvertierung eines Unix-Zeitstempels in die Uhrzeit in JavaScript

Ich speichere Zeit in einer MySQL-Datenbank als Unix-Zeitstempel und das wird an einige JavaScript-Code gesendet. Wie würde ich nur die Zeit aus es bekommen?

Zum Beispiel, in HH/MM/SS Format.

25 Stimmen

Multiplizieren Sie einfach mit 1000, da JS-Zeitstempel in Millisekunden und PHP in Sekunden angegeben sind.

1 Stimmen

Hier ist ein sehr nützlicher Link mit verschiedenen Datumsformaten: timestamp.online/article/ Kombinieren Sie das mit der Multiplikation mit 1000 und Sie haben den Job erledigt!

0 Stimmen

Sehen Sie hier, was ich erreicht habe: stackoverflow.com/a/64089456/2927228

89voto

Brad Koch Punkte 17657

Ich habe eine Vorliebe für Jacob Wrights Date.format() Bibliothek, die die JavaScript-Datumsformatierung im Stil von PHPs date() Funktion.

new Date(unix_timestamp * 1000).format('h:i:s')

15 Stimmen

Ich weiß, es war gute Antwort zurück in eine Tage, aber in diesen Tagen erweitern native JS-Objekte ist ein Anti-Pattern.

5 Stimmen

Es funktioniert nicht (mehr?) in node js format is not a function . Aber das funktioniert offenbar: stackoverflow.com/a/34015511/7550772

0 Stimmen

@ibodi es ist die Bibliothek

40voto

Luis David Punkte 624

Kürzeste Einzeiler-Lösung zur Formatierung von Sekunden als hh:mm:ss: Variante:

console.log(new Date(1549312452 * 1000).toISOString().slice(0, 19).replace('T', ' '));
// "2019-02-04 20:34:12"

1 Stimmen

Wenn ich dies mit PHP unix timestamps verwende, erhalte ich aus irgendeinem Grund +5h als die tatsächliche Zeit :/

2 Stimmen

@keanu_reeves - das klingt, als befänden Sie sich in der östlichen US-Zeitzone und die Zeitstempel sind UTC. Versuchen Sie, die .slice(0,19) zu entfernen und ich denke, Sie werden sehen, die Zeitzone des Ergebnisses ist Z (Zulu).

37voto

homtg Punkte 1939

Ich würde darüber nachdenken, eine Bibliothek wie momentjs.com Das macht die Sache wirklich einfach:

Basierend auf einem Unix-Zeitstempel:

var timestamp = moment.unix(1293683278);
console.log( timestamp.format("HH/mm/ss") );

Basierend auf einem MySQL-Datumsstring:

var now = moment("2010-10-10 12:03:15");
console.log( now.format("HH/mm/ss") );

5 Stimmen

Ein weiterer Vorteil von moment.js (oder ähnlichen Bibliotheken) wäre die Unterstützung von relative Zeit für Meldungen wie "vor 6 Stunden".

0 Stimmen

In Ihrem console.log Beispiele, ich war verwirrt über das Format aufgrund der / aber es hat mir sehr geholfen.

0 Stimmen

Mein Zeitstempel ist im UTC-Format. Muss ich hier irgendetwas ändern, um das zu erreichen? Wie kann ich am/pm haben?

33voto

Valix85 Punkte 723

Im Moment müssen Sie den Unix-Zeitstempel verwenden:

const dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");

29voto

james ace Punkte 1615

Dies funktioniert mit PHP-Zeitstempeln

var d = 1541415288860;
//var d =val.timestamp;

//NB: use + before variable name
var date = new Date(+d);

console.log(d);
console.log(date.toDateString());
console.log(date.getFullYear());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getHours());
console.log(date.toLocaleTimeString());

var d =val.timestamp;
var date=new Date(+d); //NB: use + before variable name

console.log(d);
console.log(date.toDateString());
console.log(date.getFullYear());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getHours());
console.log(date.toLocaleTimeString());

die oben genannten Methoden führen zu folgenden Ergebnissen

1541415288860
Mon Nov 05 2018 
2018 
54 
48 
13
1:54:48 PM

Es gibt eine Reihe von Methoden, die perfekt mit Zeitstempeln funktionieren. Cant Liste sie alle

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