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

27voto

Grzegorz Gierlik Punkte 10792

UNIX-Zeitstempel ist Nummer von Sekunden seit 00:00:00 UTC am 1. Januar 1970 (laut Wikipedia ).

Argument des Date-Objekts in Javascript ist die Anzahl der Milisekunden seit 00:00:00 UTC am 1. Januar 1970 (laut W3Schools Javascript-Dokumentation ).

Siehe nachstehenden Code als Beispiel:

    function tm(unix_tm) {
        var dt = new Date(unix_tm*1000);
        document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>');

    }

tm(60);
tm(86400);

gibt:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time)
1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)

19voto

Peter T. Punkte 7860

Verwendung von Moment.js können Sie Uhrzeit und Datum wie folgt abrufen:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

Und Sie können damit nur Zeit gewinnen:

var timeString = moment(1439198499).format("HH:mm:ss");

0 Stimmen

Wissen Sie, wie man das Format DD-MM-YYYY HH:mm:ss in etwas wie 1439198499 umwandelt?

0 Stimmen

Hallo Kemat, Sie können dies mit folgender Anweisung tun moment('2009-07-15 00:00:00').unix()

0 Stimmen

Mein Zeitstempel ist im UTC-Format. Muss ich hier irgendeinen Unterschied machen? Wie kann ich am/pm haben?

17voto

deadrunk Punkte 13207

Ein anderer Weg - von einem ISO 8601 Datum.

var timestamp = 1293683278;
var date = new Date(timestamp * 1000);
var iso = date.toISOString().match(/(\d{2}:\d{2}:\d{2})/)
alert(iso[1]);

0 Stimmen

Ich erhalte "Objekt ... hat keine Methode 'toISOString'".

0 Stimmen

Mein Zeitstempel ist im UTC-Format. Muss ich hier irgendeinen Unterschied machen? Wie kann ich am/pm haben?

17voto

Bernie Punkte 161

Das Problem bei den oben genannten Lösungen ist, dass wenn Stunde, Minute oder Sekunde nur eine Ziffer (d.h. 0-9) haben, die Zeit falsch wäre, z.B. könnte es 2:3:9 sein, aber es sollte eher 02:03:09 sein.

Selon このページ scheint es eine bessere Lösung zu sein, die Methode "toLocaleTimeString" von Date zu verwenden.

5 Stimmen

Für die meisten Weblösungen ist dies die korrekteste Antwort, da sie das Gebietsschema des Clients verwendet, z.B. 24h vs. 12h am/pm Format. Für einen Zeitstring würden Sie dann verwenden: date.toLocaleTimeString()

1 Stimmen

Dies wird nicht geschehen mit toTimeString Methode. Sehen Sie hier nach: stackoverflow.com/a/35890537/1249581 .

13voto

synan54 Punkte 658
function getTIMESTAMP() {
  var date = new Date();
  var year = date.getFullYear();
  var month = ("0" + (date.getMonth() + 1)).substr(-2);
  var day = ("0" + date.getDate()).substr(-2);
  var hour = ("0" + date.getHours()).substr(-2);
  var minutes = ("0" + date.getMinutes()).substr(-2);
  var seconds = ("0" + date.getSeconds()).substr(-2);

  return year + "-" + month + "-" + day + " " + hour + ":" + minutes + ":" + seconds;
}

//2016-01-14 02:40:01

0 Stimmen

Funktioniert gut. Dankeschön

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