Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung des Codes zum Konvertieren von Zeitstempeln in Zeitformate mithilfe von js

Detaillierte Erläuterung des Codes zum Konvertieren von Zeitstempeln in Zeitformate mithilfe von js

不言
不言Original
2018-08-13 17:30:201700Durchsuche

Dieser Artikel enthält eine detaillierte Erklärung des Codes zum Konvertieren von Zeitstempeln in das Zeitformat mit JS. Er hat einen gewissen Referenzwert und kann Ihnen helfen.

Während des Frontend-Entwicklungsprozesses ist es häufig erforderlich, Zeitstempel in ein Standardzeitformat zu konvertieren, damit Benutzer sie durchsuchen können. Wie kann man es schnell und gut implementieren, ohne eine Methodenbibliothek zu verwenden? Im Folgenden werden zwei Methoden vorgestellt.

Alte Methode

Diese Methode wird grundsätzlich im täglichen Leben verwendet. Verwenden Sie die Datumsmethode, um Jahr, Monat, Tag, Stunde, Minute und Sekunde einzeln zu berechnen und sie dann zusammenzufügen die erforderliche Zeitformatzeichenfolge.

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear(); //getFullYear方法以四位数字返回年份
        var M = time.getMonth() + 1; // getMonth方法从 Date 对象返回月份 (0 ~ 11),返回结果需要手动加一
        var d = time.getDate(); // getDate方法从 Date 对象返回一个月中的某一天 (1 ~ 31)
        var h = time.getHours(); // getHours方法返回 Date 对象的小时 (0 ~ 23)
        var m = time.getMinutes(); // getMinutes方法返回 Date 对象的分钟 (0 ~ 59)
        var s = time.getSeconds(); // getSeconds方法返回 Date 对象的秒数 (0 ~ 59)
        return y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s;
      } else {
          return '';
      }
}
transformTime(); // "2018-8-8 12:9:12"

Verbesserte Version der alten Methode

Die obige Konvertierungsmethode wandelt den Zeitstempel in eine Datumsinstanz um und verwendet die dem Datum entsprechende Methode, um das entsprechende Jahr, Monat, Tag, Stunde zu erhalten. Minute und Sekunde. Das erhaltene Zeitformat ist „2018-8-8 12:9:12“, sieht etwas umständlich aus. Um in unser häufig verwendetes Zeitformat zu konvertieren, müssen Sie auch darauf achten, die Zeichenfolge „0“ vor dem Wert unter 10 hinzuzufügen, um ihn in das Zeitformat „2018-08-08 12:09“ zu konvertieren: 12'.

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear();
        var M = time.getMonth() + 1;
        var d = time.getDate();
        var h = time.getHours();
        var m = time.getMinutes();
        var s = time.getSeconds();
        return y + '-' + addZero(M) + '-' + addZero(d) + ' ' + addZero(h) + ':' + addZero(m) + ':' + addZero(s);
      } else {
          return '';
      }
}
function addZero(m) {
    return m < 10 ? '0' + m : m;
}
transformTime(); // "2018-08-08 12:09:12"

Verarbeiten Sie den zurückgegebenen Zeitwert von weniger als 10 und fügen Sie mit der Methode „addZero“ „0“ zur Zeichenfolge hinzu, sodass das Format symmetrisch ist.

Neue Ideen

Um den Zeitstempel in das von uns benötigte Zeitformat umzuwandeln, haben wir zwei Funktionen geschrieben, die zusammen mehr als zehn Zeilen ergeben. Vor einiger Zeit hat mir der Abteilungsleiter eine andere Möglichkeit mitgeteilt, den Zeitstempel in ein Zeitformat in der Form „JJJJ-MM-TT HH:mm:ss“ umzuwandeln Nochmal, zeigen wir es. Die Methode „toJSON“ des Codes

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000); // 增加8小时
    return date.toJSON().substr(0, 19).replace('T', ' ');
}
time(); // "2018-08-09 18:25:54"

Date gibt die JSON-Formatzeichenfolge der Greenwich-Zeit zurück, die eigentlich das Ergebnis der Verwendung der Methode „toISOString“ ist. Die Zeichenfolge hat die Form „2018-08-09T10:20:54.396Z“. Für die Umrechnung in die Pekinger Zeit sind acht zusätzliche Zeitzonen erforderlich. Wir müssen die ersten 19 Ziffern der Zeichenfolge verwenden und „T“ durch Leerzeichen ersetzen Das heißt, wir brauchen ein Zeitformat.

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000);
    return date.toJSON().substr(0, 19).replace('T', ' ').replace(/-/g, '.');
}
time(); // "2018.08.09 18:25:54"

Sie können das „-“ im Zeitformat in „.“ oder andere Symbole ändern. Im Vergleich zur alten Methode spart diese Methode mehr als ein wenig Code als zuvor und ist viel einfacher zu lesen. Wenn das Zeitformat Millisekunden erfordert, müssen Sie nur die ersten 23 Ziffern der Zeichenfolge abrufen und sie wie oben mit der Ersetzungsmethode ersetzen.

Verwandte Empfehlungen:

Wie exportiere und importiere ich Excel mit js? So importieren und exportieren Sie Excel mit js (reiner Code)

So verschieben Sie das Dropdown-Menü in js (Code) nach links und rechts

So verwenden Sie das setInterval-Timing in der js-Gerätemethode, um ein Karusselldiagramm zu implementieren (vollständiger Code)

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Codes zum Konvertieren von Zeitstempeln in Zeitformate mithilfe von js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn