javascript - Wie man einen Unix-Zeitstempel in ein Kalenderdatum mit moment.js umwandelt
Ich habe einen Unix-Zeitstempel und versuche, ihn in ein Kalenderdatum wie MM/TT/JJJJ umzuwandeln. Bisher habe ich Folgendes:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
Wenn ich versuche, das Kalenderdatum auszudrucken, sagt das Fenster „Ungültiges Datum“. Kann mir jemand helfen?
Antwort #1
Wenn Sie moment.js wie gewünscht verwenden, gibt es eine unix-Methode, die Unix-Zeitstempel in Sekunden akzeptiert:
var dateString = moment.unix(value).format("MM/DD/YYYY");
Antwort #2
UNIX-Zeitstempel ist die Anzahl der Sekunden seit 1970, daher müssen Sie ihn in ein JS-Date-Objekt umwandeln:
var date = new Date(unixTimestamp*1000);
Antwort #3
Moment.js bietet lokalisierte Formate, die verwendet werden können.
Hier ist ein Beispiel:
const moment = require('moment');
const timestamp = 1519482900000;
const formatted = moment(timestamp).format('L');
console.log(formatted); // "02/24/2018"
Antwort #4
Könnte ein wenig spät sein, aber für neue Probleme wie dieses verwende ich diesen Code:
moment(timestamp, 'X').format('lll');
Sie können das Format an Ihre Bedürfnisse anpassen und auch die Zeitzone wie folgt hinzufügen:
moment(timestamp, 'X').tz(timezone).format('lll');
Ref: https://momentjs.com/docs/#/parsing/string/
Warnung: Die Browserunterstützung für das Parsen von Zeichenketten ist inkonsistent. Da es keine Spezifikation dafür gibt, welche Formate unterstützt werden sollten, funktioniert das, was in einigen Browsern funktioniert, in anderen Browsern nicht.
Für konsistente Ergebnisse beim Parsen von allem außer ISO-8601-Strings sollten Sie String + Format verwenden.
Beispiel
moment('2022-12-03').format('YYYY-MM-DD'); //avoid use this because inconsistentcy
moment('2022-12-03','YYYY-MM-DD').format('YYYY-MM-DD'); //use this instead
moment('1670000400','X').format('YYYY-MM-DD'); //use this instead (timestamp)
moment('03-2022-12','DD-YYYY-MM').format('YYYY-MM-DD'); //UNCOMMON CASE
Antwort #5
Nur es
moment.unix(date).toDate();
