Frage Wie erhält man einen Zeitstempel in JavaScript?


Wie kann ich einen Zeitstempel in JavaScript erhalten?

Ähnliches wie der Zeitstempel von Unix, dh eine einzelne Zahl, die die aktuelle Uhrzeit und das aktuelle Datum darstellt. Entweder als Zahl oder als Zeichenfolge.


3358
2017-10-21 09:29


Ursprung


Antworten:


Kurz & Snazzy:

+ new Date()

Ein unärer Operator wie plus löst das aus valueOf Methode in der Date Objekt und gibt den Zeitstempel (ohne Änderung) zurück.

Einzelheiten:

Auf fast allen aktuellen Browsern, die Sie verwenden können Date.now() um den UTC-Zeitstempel zu erhalten Millisekunden; Eine bemerkenswerte Ausnahme ist IE8 und früher (siehe Kompatibilitätstabelle).

Sie können jedoch leicht eine Unterlegscheibe dafür machen:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

Um den Zeitstempel zu erhalten Sekunden, können Sie verwenden:

Math.floor(Date.now() / 1000)

Oder alternativ könnten Sie verwenden:

Date.now() / 1000 | 0

Was etwas schneller sein sollte, aber auch weniger lesbar (auch Siehe diese Antwort).

Ich würde empfehlen, zu verwenden Date.now() (mit Kompatibilität Shim). Es ist etwas besser, weil es kürzer ist und kein neues erstellt Date Objekt. Wenn Sie jedoch keine Shim und maximale Kompatibilität wünschen, können Sie die "alte" Methode verwenden, um den Zeitstempel zu erhalten Millisekunden:

new Date().getTime()

Welche können Sie dann in Sekunden wie folgt umwandeln:

Math.round(new Date().getTime()/1000)

Und Sie können auch die valueOf Methode, die wir oben gezeigt haben:

new Date().valueOf()

Zeitstempel in Millisekunden

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());


4148
2017-10-21 09:32



Ich mag das, weil es klein ist:

+new Date

Ich mag das auch, weil es genauso kurz ist und mit modernen Browsern kompatibel ist, und über 500 Leute haben dafür gestimmt, dass es besser ist:

Date.now()

429
2018-02-18 00:33



JavaScript arbeitet mit der Anzahl der Millisekunden seit der Epoche, während die meisten anderen Sprachen mit den Sekunden arbeiten. Sie könnten mit Millisekunden arbeiten, aber sobald Sie einen Wert übergeben, um PHP zu sagen, werden die nativen Funktionen von PHP wahrscheinlich fehlschlagen. Also benutze ich immer die Sekunden, nicht Millisekunden.

Dies gibt Ihnen einen Unix-Zeitstempel (in Sekunden):

var unix = Math.round(+new Date()/1000);

Dies gibt Ihnen die Millisekunden seit der Epoche (nicht Unix Timestamp):

var milliseconds = new Date().getTime();

229
2018-05-11 22:27



var time = Date.now || function() {
  return +new Date;
};

time();

126
2017-10-21 10:05



Ich biete mehrere Lösungen mit Beschreibungen in dieser Antwort. Fühlen Sie sich frei, Fragen zu stellen, wenn etwas unklar ist
PS: Leider hat jemand das mit der Top-Antwort verschmolzen, ohne Kredit zu geben.


Schnelle und schmutzige Lösung:

Date.now() /1000 |0

Warnung: Es Macht Pause im Jahr 2038 und negative Zahlen zurück, wenn Sie das tun |0 Zauber. Benutzen Math.floor() zu dieser Zeit


95
2017-07-12 07:15



var timestamp = Number(new Date()); // current time as number

69
2017-10-21 13:00



jQuery bietet seine eigene Methode um den Zeitstempel zu erhalten:

var timestamp = $.now();

(Außerdem implementiert es einfach (new Date).getTime() Ausdruck)

REF:  http://api.jquery.com/jQuery.now/


50
2018-03-15 14:19



Um nur eine Zusammenfassung zu geben, hier ist eine Funktion, um eine Zeitstempel-Zeichenfolge in Javascript zurückzugeben. Beispiel: 15:06:38

function displayTime() {
    var str = "";

    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()
    var seconds = currentTime.getSeconds()

    if (minutes < 10) {
        minutes = "0" + minutes
    }
    if (seconds < 10) {
        seconds = "0" + seconds
    }
    str += hours + ":" + minutes + ":" + seconds + " ";
    if(hours > 11){
        str += "PM"
    } else {
        str += "AM"
    }
    return str;
}

36
2017-09-21 19:12



console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch


34
2018-04-30 16:53